在Spring4之前,是通过xml配置文件配置的,十分麻烦
从Spring4开始,推荐使用java Config的方式,使用Annoation来进行配置。
举例:mybatis在SpringBoot项目中的配置
@Configuration
public class MybatisConfiguration {
//加载datasource配置文件
@Bean
@ConfigurationProperties(prefix="spring.datasource")
@Qualifier("dataSourceMybatis")
public DataSource dataSourceMybatis() {
return new DataSource();
}
//加载SqlSessionFactory
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSourceMybatis());
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setConfigLocation(resolver.getResource("classpath:mybatis-config.xml"));
// 配置mybatis的扫描,找到所有的*mybatis.xml映射文件
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mybatis/*/*.xml"));
return sqlSessionFactoryBean.getObject();
}
//mybabtis分頁組件
@Bean
public PageHelper pageHelper() {
//分页插件
PageHelper pageHelper = new PageHelper();
Properties props = new Properties();
props.setProperty("reasonable", "true");
props.setProperty("supportMethodsArguments", "true");
props.setProperty("returnPageInfo", "check");
props.setProperty("params", "count=countSql");
props.setProperty("dialect", "mysql");
pageHelper.setProperties(props);
return pageHelper;
}
//配置事务
// @Bean(name = "txTransactionManager",value = "txTransactionManager")
// public PlatformTransactionManager txTransactionManager(@Qualifier("dataSourceMybatis")javax.sql.DataSource dataSource) {
// return new DataSourceTransactionManager(dataSource);
// }
}
@Configuration
//注意,由于MapperScannerConfigurer执行的比较早,所以必须有下面的注解
@AutoConfigureAfter(MybatisConfiguration.class)
public class MybatisConfigurationScanner {
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
mapperScannerConfigurer.setBasePackage("com.bizdata.*.repository");
return mapperScannerConfigurer;
}
@Bean(name = "transactionManager",value = "transactionManager")
public JpaTransactionManager transactionManager(DataSource dataSource) {
JpaTransactionManager manager= new JpaTransactionManager();
manager.setDataSource(dataSource);
return manager;
}
}
@Configuration用来配置java Config,@ AutoConfigureAfter来调整加载【配置类】的顺序。MybatisConfiguration 最好在MybatisConfigurationScanner 之前加载。