springboot+mybatis多数据源配置

来源:互联网 发布:ubuntu游客创建用户 编辑:程序博客网 时间:2024/06/13 18:55

1、数据源信息

spring.datasource.pg.driverClassName = org.postgresql.Driverspring.datasource.pg.url = jdbc:postgresql://x.x.x.x:xxxx/xxxspring.datasource.pg.username = xxxspring.datasource.pg.password = xxxspring.datasource.ms.driverClassName = com.mysql.jdbc.Driverspring.datasource.ms.url = jdbc:mysql://x.x.x.x:xxxx/xxxspring.datasource.ms.username = xxxspring.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);    }}