springboot配置多数据源
1.包添加
<!-- 实现对 dynamic-datasource 的自动化配置 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.1</version>
</dependency>
<!-- 同时依赖 dynamic-datasource-spring-boot-starter 这个 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.spring.yml配置
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master,如果你主从默认下主库的名称就是master可不定义此项。
datasource:
master:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://10.11.12.30:3306/slave1?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false&allowPublicKeyRetrieval=true
slave_1:
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://10.11.12.30:3306/slave2?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false&allowPublicKeyRetrieval=true
servlet:
multipart:
# 单个文件最大大小
max-file-size: 20MB
# 所有上传文件最大大小
max-request-size: 50MB
3.启动项添加@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@Slf4j
public class ReportApplication {
}
4.示例
//Controller层
@GetMapping("/weChatTest")
public Result weChatTest() {
return Result.ok(weChatService.weChatTest());
}
//Service层
public List weChatTest();
//ServiceImpl层
@Override
@DS("slave_1")
public List weChatTest() {
return jdbcTemplate.queryForList("select * from t_organization_user_tbl where
user_id = 183");
}