/**
* xxx数据库
*
* @author xxx
* @since 2023/04/19
*/
@Configuration
@MapperScan(basePackages = {"com.xxx.xxx.mapper.xxx"}, sqlSessionFactoryRef = "xxxSqlSessionFactory")
public class DataSourceXxxConfig {
/**
* DataSource
*
* @return DataSource
*/
@Primary
@Bean(name = "xxxDataSource")
@ConfigurationProperties("spring.datasource.xxx")
public DataSource dataSource() {
return new DruidDataSource();
}
/**
* SqlSessionFactory
*
* @param dataSource dataSource
* @return SqlSessionFactory
* @throws Exception Exception
*/
@Primary
@Bean(name = "xxxSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("xxxDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/xxx/*.xml"));
return sessionFactoryBean.getObject();
}
/**
* DataSourceTransactionManager
*
* @param dataSource dataSource
* @return DataSourceTransactionManager
*/
@Primary
@Bean(name = "xxxTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("xxxDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* SqlSessionTemplate
*
* @param sqlSessionFactory sqlSessionFactory
* @return SqlSessionTemplate
* @throws Exception Exception
*/
@Primary
@Bean(name = "xxxSqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("xxxSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
注意:使用mybatisplus时,SqlSessionFactory要改为MybatisSqlSessionFactoryBean。