本来模块在SpringBoot中使用自定义的DataSourceConfig, 运行,DataSourceConfig和mybatis-config.xml和Mapper等资料都在这个模块里,后来决定将这个模块作为一个通用的jar包给其他模块使用,修改如下:
例如我新建一个NewModule,原来的模块叫做MybatisModule
1. basePackages:必须在NewModule的Application加入注解
@MapperScan(basePackages = {"com.example.mybatis.dao"})
2. 原来的DataSourceConfig维持在MybatisModule里,有几个重要的位置要注意
static final String PACKAGE = "classpath:com.example.mybatis.*"; (扫描的包)
static final String MAPPER_LOCATION = "classpath*:com/example/mybatis/dao/*.xml"; (xml的位置)
static final String CONFIG_LOCATION = "classpath:mybatis/mybatis-config.xml"; (config的位置)
1) 里面的MapperLocation由classpath改为classpath*,加一个*号才会扫描jar包中的mapper。
static final String MAPPER_LOCATION = "classpath*:com/example/mybatis/dao/*.xml";
2)mybaits的Conig维持原样,添加*号反而找不到,所以要将mybatis/mybatis-config.xml移动到NewModule的resources里,
3)PACKAGE加不加*都不影响,移到jar包后,扫描的路径要在NewModule里定义
3. 修改配置后,用测试类运行 mybatis 要在NewModule里,不能再原来的MybatisModule