1、数据源信息
spring.datasource.pg.driverClassName = org.postgresql.Driver
spring.datasource.pg.url = jdbc:postgresql://x.x.x.x:xxxx/xxx
spring.datasource.pg.username = xxx
spring.datasource.pg.password = xxx
spring.datasource.ms.driverClassName = com.mysql.jdbc.Driver
spring.datasource.ms.url = jdbc:mysql://x.x.x.x:xxxx/xxx
spring.datasource.ms.username = xxx
spring.datasource.ms.password = xxx
2、mybatis相关配置
数据源1配置:(@Primary为设置主数据源标签,在多数据源情况下必须指定主数据源)
@Configuration
@MapperScan(basePackages = "com.hysyn.mapper.pg", sqlSessionTemplateRef = "pgSqlSessionTemplate")
public class DataSource1Config {
@Bean(name = "pgDataSource")
@ConfigurationProperties(prefix = "spring.datasource.pg")
@Primary
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "pgSqlSessionFactory")
@Primary
public SqlSessionFactory testSqlSessionFactory(@Qualifier("pgDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/pg/*.xml"));
return bean.getObject();
}
@Bean(name = "pgTransactionManager")
@Primary
public DataSourceTransactionManager testTransactionManager(@Qualifier("pgDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "pgSqlSessionTemplate")
@Primary
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("pgSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
数据源配置:
@Configuration
@MapperScan(basePackages = "com.hysyn.mapper.ms", sqlSessionTemplateRef = "msSqlSessionTemplate")
public class DataSource2Config {
@Bean(name = "msDataSource")
@ConfigurationProperties(prefix = "spring.datasource.ms")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "msSqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("msDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/ms/*.xml"));
return bean.getObject();
}
@Bean(name = "msTransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("msDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "msSqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("msSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}