1.springboot的配置文件,primary是主数据源,secondary是从数据源
server:
port: 8989
spring:
datasource:
primary:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://***.***.***.***:3306/smb-web?useUnicode=true&useSSL=false&characterEncoding=UTF-8
username: root
password: root
secondary:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://***.***.***.***:3306/smb-web?useUnicode=true&useSSL=false&characterEncoding=UTF-8
username: root
password: root
2.手动配置数据源
2.1主数据源
@Configuration
@MapperScan(basePackages = "com.example.demo.person.dao", sqlSessionTemplateRef = "test1SqlSessionTemplate")
public class DataSource1Config {
@Bean(name = "db1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.primary")
@Primary
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "test1SqlSessionFactory")
@Primary
public SqlSessionFactory testSqlSessionFactory(@Qualifier("1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper1/*.xml"));//指定mapper.xml路径
return bean.getObject();
}
@Bean(name = "test1TransactionManager")
@Primary
public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "test1SqlSessionTemplate")
@Primary
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
2.2从数据源
@Configuration
@MapperScan(basePackages = "com.example.demo.car.dao", sqlSessionTemplateRef = "test2SqlSessionTemplate")
public class DataSource2Config {
@Bean(name = "test2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.secondary")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "test2SqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper2/*.xml"));//指定mapper.xml路径
return bean.getObject();
}
@Bean(name = "test2TransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "test2SqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
3测试--service
@Autowired
private StoreEntityMapper storeEntityMapper;
public void datebase_test(){
StoreEntity storeEntity=storeEntityMapper.selectByPrimaryKey(1);
System.out.println(storeEntity.toString());
}
参考
http://blog.51cto.com/11864647/2067708