1、引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
2、application.yml 配置
#Spring配置
spring:
application:
name: ifina
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
servlet:
multipart:
maxFileSize: 5MB #单位必须大写MB或不写(即为B)
maxRequestSize: 10MB
datasource:
# 可以先在这里配置好通用的配置,比如
druid:
filters: stat,wall
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 10
#maxIdle:15
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
#poolPreparedStatements:true
maxOpenPreparedStatements: 20
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: /druid/*,*js,*gif,*jpg,*bmp,*png,*css,*ico
session-stat-enable: true
session-stat-max-count: 10
principal-session-name: session_name
principal-cookie-name: cookie_name
profile-enable: true
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: false
login-username: admin
login-password: 123456
allow: 127.0.0.1,192.168.179.116
aop-patterns: com.hieasy.ifina.service.*
dynamic:
primary: threetp #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
p6spy: false
datasource:
threetp:
url: jdbc:sqlserver://192.168.179.214:8899;SelectMethod=cursor;DatabaseName=CWINF_3Q
username: ENC(H1yLPJFx92iVQyOS+Et1pw==)
password: ENC(KGsBr0kVGYvW6AWtUXqZXCsnTNcWgpJO)
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
kingdee:
url: jdbc:sqlserver://192.168.179.214:8899;SelectMethod=cursor;DatabaseName=CWINF_JD
username: ENC(H1yLPJFx92iVQyOS+Et1pw==)
password: ENC(KGsBr0kVGYvW6AWtUXqZXCsnTNcWgpJO)
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
3、启动类排除DRUID默认配置
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@EnableCaching
//去掉Druid 默认的数据源配置,动态加载数据源
@SpringBootApplication(exclude= {DruidDataSourceAutoConfigure.class})
public class IfinaApplication {
public static void main(String[] args) {
SpringApplication.run(IfinaApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 数据服务启动成功 ლ(´ڡ`ლ)゙ \n" );
}
}
启动如下图:
访问druid监控 http://localhost:11020/druid,输入配置的用户名密码
切换数据源,主数据源不需要注解,再从数据源那里加上@DS注解
@DS("kingdee")
@Service
@Transactional
public class DSDemoServiceImpl implements IDSDemoService {
}