MyBatis-Spring-Boot
MyBatis-Spring-Boot copied to clipboard
几个问题
MyBatisMapperScannerConfig里的bean可以放在MyBatisConfig里吗?我尝试了报错。
我这边两个类里都打印了几句话,打印的信息看到确实是MapperScannerConfig比MyBatisConfig早执行,关键是basePackage
没法读到配置的值,这个加@AutoConfigureAfter
也没用,而且加了MapperScannerConfig还比MyBatisConfig 早执行....
@Configuration
public class MapperScannerConfig {
@Value("${datasource.basePackage:com.tg.ms.mapper}")
private String basePackage;
@Bean
public MapperScannerConfigurer BPMapperScannerConfigurer() {
System.out.println("mapper--1.----******----"+basePackage+"----*******");
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.tg.mapper");
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
return mapperScannerConfigurer;
}
}
想要了解怎么使用,最好的方式就去看mybatis官方提供的starter项目,你可以参考看看。
我也遇到这个需求了,目前是实现了 implements EnvironmentAware接口,注入了环境变量. 然后 @Override public void setEnvironment(Environment environment) { this.propertyResolver = new RelaxedPropertyResolver(environment, null); this.basePackage = propertyResolver.getProperty("mybatis.basepackage"); }
本项目已经修改,原理参考:Spring Boot - 配置排序依赖技巧