【问题标题】:why it' take's t.m.s.mapper.ClassPathMapperScanner and o.m.s.mapper.ClassPathMapperScanner为什么需要 t.m.s.mapper.ClassPathMapperScanner 和 o.m.s.mapper.ClassPathMapperScanner
【发布时间】:2021-03-14 07:16:16
【问题描述】:
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
} 
59:37.637 [main] WARN  t.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.test.user]' package. Please check your configuration.
59:37.785 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.test.user]' package. Please check your configuration.

我尝试添加Spring Boot Application的@MapperScan(basePackages = {"com.test.user.mapper"}) 它是:

....
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(basePackages = {"com.test.user.mapper"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
} 

需要一些警告,例如:

54:57.153 [main] WARN  o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.test.user]' package. Please check your configuration.

那我换个包

org.mybatis.spring.annotation.MapperScan;
....
import org.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(basePackages = {"com.test.user.mapper"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
} 

需要另一个警告:

59:22.290 [main] WARN  t.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.test.user]' package. Please check your configuration

这是依赖的一部分

<!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!--mapper-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
            </exclusions>
<!--            <version>1.2.4</version>-->
        </dependency>

也许这是一个警告,但我想知道为什么和详细信息?

【问题讨论】:

  • “com.test.user.mapper”是你的配置类包吗?
  • 我只能说它的包装问题。在正确的地方扫描正确的包裹。

标签: java spring-boot mybatis mapper


【解决方案1】:

根据the docs,@MapperScan用于扫描MyBatis的mapper接口。

如果你得到警告日志,我相信你想要使用的 Mybatis 映射器没有被 Spring 检测到。

对于 XML 映射器,请确保映射器命名空间正确。

mapper namespace="com.test.user.mapper.SomeMybatisXMLMapper

对于 Java 接口映射器,确保 java 文件类名与您的包匹配。

com.test.user.mapper.SomeMybatisJavaInterfaceMapper

【讨论】:

    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2015-04-18
    • 2021-12-23
    • 2018-11-04
    • 2012-12-28
    • 2013-06-09
    相关资源
    最近更新 更多