一開始沒理解為什么不生效,明明application.yml中已經配置了。但是分析了一下就知道,因為mapUnderScoreToCamelCase是Configuration的一個屬性,之前習慣了這種配置,框架幫忙做了,不了解其原理,在這邊SqlSessionFactory中根本沒有配置configuration對象,當然不生效。
所以現在了解了問題,mapUnderScoreToCamelCase是Configuration的一個屬性,Configuration需要注入到SqlSesssionFactory中。
pom.xml
mybatis:
configuration:
mapUnderscoreToCamelCase: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
xxConfig.class
@Bean(name = "config2")
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration globalConfiguration(){
return new org.apache.ibatis.session.Configuration();
}
@Bean(name = "sqlSessionFactory2")
public SqlSessionFactory sqlSessionFactory2(@Qualifier("dataSource2") DataSource dataSource,@Qualifier("config2") org.apache.ibatis.session.Configuration config) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setConfiguration(config);
try {
return bean.getObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}