首先在application中配置好自己的数据源,如下所示:
datasource.biz.driverClassName = com.mysql.jdbc.Driver datasource.biz.url = jdbc:mysql://127.0.0.1:3306/isv_dingtalk_biz?useUnicode=true&characterEncoding=utf-8 datasource.biz.username = root datasource.biz.password = 123
新建dataSourceConfig类:
@Configuration //com.mapper.biz为调用该数据源的sql操作,后续对不同的数据源进行操作应新建目录,一个目录对应一个数据源 @MapperScan(basePackages = "com.mapper.biz", sqlSessionTemplateRef = "bizSqlSessionTemplate") public class BizDataSourceConfig { /** * dataSource */ @Bean(name = "bizDataSource") @ConfigurationProperties(prefix = "datasource.biz")//读取配置文件中的datasource信息 public DataSource bizDataSource() { return DataSourceBuilder.create().build(); } /** * sqlSessionFactory * @param dataSource 数据源 */ @Bean(name = "bizSqlSessionFactory") public SqlSessionFactory bizSqlSessionFactory(@Qualifier("bizDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); //设置数据源信息 bean.setDataSource(dataSource); bean.setMapperLocations //mapper.xml的扫描路径 (new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/biz/*.xml")); return bean.getObject(); } /** * dataSourceTransactionManager * @param dataSource 数据源 */ @Bean(name = "bizTransactionManager") public DataSourceTransactionManager bizTransactionManager(@Qualifier("bizDataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } /** * sqlSessionTemplate * @param sqlSessionFactory sqlsession */ @Bean(name = "bizSqlSessionTemplate") public SqlSessionTemplate bizSqlSessionTemplate(@Qualifier("bizSqlSessionFactory") SqlSessionFactory sqlSessionFactory){ return new SqlSessionTemplate(sqlSessionFactory); } }
往后每添加一个新的数据源按格式修改dataSourceConfig中的相应内容即可。