目录
前言
之前的文章我们已经实现了springboot的连接池,springboot添加数据库连接池druid-CSDN博客。现在我们来实现一下多数据源的配置。
添加依赖
<!-- 多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
添加配置
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/master-1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
slave1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/slave-1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
添加属性
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class Demo3Application {
public static void main(String[] args) {
SpringApplication.run(Demo3Application.class, args);
}
}
使用
使用注解@DS("数据源")
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lyy.demo3.entity.Roles;
import com.lyy.demo3.mapper.RolesMapper;
import com.lyy.demo3.service.RolesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author ly
* @Date 2023/10/1721:54
*/
@Service
public class RolesServiceImpl extends ServiceImpl<RolesMapper, Roles> implements RolesService {
@Autowired
private RolesMapper rolesMapper;
@Override
@DS("master")
public List<Roles> queryRolesMaster() {
return rolesMapper.queryRolesMaster();
}
@Override
@DS("slave1")
public List<Roles> queryRolesSlave1() {
return rolesMapper.queryRolesSlave1();
}
}
测试
结束语
这就已经实现了多数据源的配置实现,接下来实现一下数据查询加解密,mybatis-plus数据库字段信息加解密-CSDN博客。