一、Pom.xml
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
<!--druid start-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--druid end-->
二、application.yml
spring:
datasource:
druid:
db1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/XXXXXXXX
username: root
password: root
db2:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3307/XXXXXXXX
username: root
password: sXFh_nz1wUnZ
db-type: com.alibaba.druid.pool.DruidDataSource
initial-size: 50
min-idle: 50
max-active: 100
max-wait: 60000
time-between-eviction-runs-millis: 60000
三、配置类
3.1 Db1DataSourceConfig .java
@Configuration
@MapperScan(basePackages = Db1DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "db1SqlSessionFactory")
public class Db1DataSourceConfig {
static final String PACKAGE = "com.xxxxxxx.db1";
static final String MAPPER_LOCATION = "classpath:mapper/db1/**.xml";
@Value("${spring.datasource.druid.db1.url}")
private String url;
@Value("${spring.datasource.druid.db1.username}")
private String user;
@Value("${spring.datasource.druid.db1.password}")
private String password;
@Value("${spring.datasource.druid.db1.driver-class-name}")
private String driverClass;
@Bean(name = "db1DataSource")
@Primary
public DataSource db1DataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
}
@Bean
@Primary
public DataSourceTransactionManager db1TransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
@Primary
public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource db1DataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(db1DataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(Db1DataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
3.2 Db2DataSourceConfig.java
@Configuration
@MapperScan(basePackages = Db2DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "db2SqlSessionFactory")
public class Db2DataSourceConfig {
static final String PACKAGE = "com.xxxxxx.db2";
static final String MAPPER_LOCATION = "classpath:mapper/db2/**.xml";
@Value("${spring.datasource.druid.db2.url}")
private String url;
@Value("${spring.datasource.druid.db2.username}")
private String user;
@Value("${spring.datasource.druid.db2.password}")
private String password;
@Value("${spring.datasource.druid.db2.driver-class-name}")
private String driverClass;
@Bean(name = "db2DataSource")
public DataSource db2DataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
}
@Bean
public DataSourceTransactionManager db2TransactionManager(@Qualifier("db2DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource db2DataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(db2DataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(Db2DataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
四、启动类
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
版权声明:本文为qq_21389711原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。