MyBatis-Spring-Boot icon indicating copy to clipboard operation
MyBatis-Spring-Boot copied to clipboard

配置tk.mybatis.spring.mapper.MapperScannerConfigurer后spring-mybatis中的ClassPathMapperScanner有warn日志

Open helloworldtang opened this issue 8 years ago • 10 comments

使用tk.mybatis.spring.mapper.MapperScannerConfigurer的setBasePackage配置了Mapper接口, 但org.mybatis.spring.mapper.ClassPathMapperScanner#doScan方法会报 No MyBatis mapper was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."

怎么解决这个问题呢

helloworldtang avatar Jul 28 '17 06:07 helloworldtang

把你配置贴出来。。错误信息也提供完整的。

abel533 avatar Jul 28 '17 07:07 abel533

因为是双数据源,无法使用mybatis的starter

所以:

···xml #pager pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql

    <!--pagehelper-->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.1.2</version>
    </dependency>


    <!--mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.4</version>
    </dependency>

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


```java
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setBasePackage("com.car.domain.mapper");
        Properties properties = new Properties();
        properties.setProperty("notEmpty", "false");
        properties.setProperty("IDENTITY", "MYSQL");
        mapperScannerConfigurer.setProperties(properties);
        mapperScannerConfigurer.setMarkerInterface(BaseMapper.class);
        return mapperScannerConfigurer;
    }

helloworldtang avatar Jul 28 '17 10:07 helloworldtang

是不是两个 sqlSessionFactory ?最新版本starter支持多个。

abel533 avatar Jul 28 '17 13:07 abel533

一个sqlSessionFactory. 数据源使用org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource进行切换

当时采用这种aop方式,觉得代码比较简洁。

但是日志总是出现warn,觉得很不爽

helloworldtang avatar Aug 01 '17 02:08 helloworldtang

调试看看从哪儿出来的警告,看看产生警告的原因。

abel533 avatar Aug 01 '17 03:08 abel533

org.mybatis.spring.mapper.ClassPathMapperScanner#doScan方法会报 No MyBatis mapper was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."

上面这个class里的doScan方法中打印的

helloworldtang avatar Aug 01 '17 04:08 helloworldtang

你basePackages里面有吗?如果没有就忽略警告。。

abel533 avatar Aug 01 '17 12:08 abel533

basePackages配置在Java config里面了: @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setBasePackage("com.car.domain.mapper");

报错的package是Application.java文件所在的package

helloworldtang avatar Aug 02 '17 06:08 helloworldtang

楼主我也碰到这个问题了,请问你们是怎么解决这个问题的

hezuchao avatar Sep 22 '17 07:09 hezuchao

我也碰到了

BlackChen277 avatar Jul 31 '18 03:07 BlackChen277