在项目里加了mybatis的配置,
如下:
mybatis.configuration.map-underscore-to-camel-case=false
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
发现没有生效。
排查了一下,发现原因,是因为使用了多数据源的原因。
多数据需要自己配置config到SqlSessionFactoryBean中
解决方法如下:
- 创建MybatisConfig配置类:
@Configuration
public class MybatisConfig {
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration mybatisConfiguration() {
return new org.apache.ibatis.session.Configuration();
}
}
- 在
SqlSessionFactoryBean中设置配置类
@Bean
@Primary
public SqlSessionFactoryBean sqlSessionFactory(org.apache.ibatis.session.Configuration configuration) throws IOException, SQLException {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource1());
// 设置查找器
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
// 手动设置配置
sqlSessionFactoryBean.setConfiguration(configuration);
return sqlSessionFactoryBean;
}
本文介绍了一种在使用MyBatis时遇到的配置不生效的问题,并提供了详细的解决方案。问题出现的原因是使用了多数据源配置,需要手动将特定配置应用到SqlSessionFactoryBean中。
5351

被折叠的 条评论
为什么被折叠?



