首先配置 yml
然后创建对应的 配置文件
然后复制下方的代码 进行粘贴
@Configuration
@MapperScan(basePackages="com.example.chassis.mapper.chassis_mapper", sqlSessionTemplateRef = "chassisSqlSessionTemplate")
public class ChassisDataSource {
@Primary
@Bean(name = "DataSource1")
@ConfigurationProperties(prefix = "spring.datasource.chassis")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "SqlSessionFactory1")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("DataSource1") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/chassis_mapper/*.xml"));
return bean.getObject();
}
@Primary
@Bean(name = "TransactionManager1")
public DataSourceTransactionManager testTransactionManager(@Qualifier("DataSource1") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Primary
@Bean(name = "chassisSqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("SqlSessionFactory1") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
需要注意的是
@MapperScan(basePackages="com.example.chassis.mapper.chassis_mapper",
sqlSessionTemplateRef = "chassisSqlSessionTemplate")
basePackages="com.example.chassis.mapper.chassis_mapper"是扫描Mapper文件
也就是配置的这个数据源 被哪个mapper 使用
文件路径一定要填写正确。
sqlSessionTemplateRef = "chassisSqlSessionTemplate" 这里的名字 必须跟最下方的
@Primary
@Bean(name = "chassisSqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("SqlSessionFactory1") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean(name = "chassisSqlSessionTemplate")
这里的名字 填写一样
这是我Mapper 文件的目录结构
其他的两个文件 配置相同
@Configuration
@MapperScan(basePackages = "com.example.chassis.mapper.user_mapper",sqlSessionTemplateRef = "userSessionTemplateRef")
public class UserDataSource {
@Bean(name = "DataSource2")
@ConfigurationProperties(prefix = "spring.datasource.user")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "SqlSessionFactory2")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("DataSource2") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("mapper/user_mapper/*.xml"));
return bean.getObject();
}
@Bean(name = "TransactionManager2")
public DataSourceTransactionManager testTransactionManager(@Qualifier("DataSource2") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "userSessionTemplateRef")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("SqlSessionFactory2") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}