@File
2019-10-08T09:32:41.000000Z
字数 1397
阅读 123
web
java
<!-- dynamic -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.6</version>
</dependency>
<!-- druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.
datasource:
# 主
master:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username:
password:
driver-class-name: com.mysql.jdbc.Driver
# 从
slave_1:
url: jdbc:mysql://127.0.0.1:3307/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username:
password:
driver-class-name: com.mysql.jdbc.Driver
spring:
datasource:
dynamic:
datasource:
master_1:
master_2:
slave_1:
slave_2:
slave_3:
spring:
datasource:
dynamic:
datasource:
mysql:
oracle:
sqlserver:
postgresql:
h2:
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@DS
的使用@DS
则访问默认库(primary指定的)
// 声明类中所有方法默认使用的库
// 匹配 slave_1 slave_2 slave_3
@DS("slave")
public class DemoServiceImpl implements DemoService{
@Override
public List<DB> findAll(){}
// 单独声明该方法使用的库
// 只匹配 slave_1
@DS("slave_1")
@Override
public DB findById(int id){}
}