网站首页 > 精选教程 正文
今天这篇笔记主要介绍一下若依框架下面多数据源的配置。
一个工程项目连接多个数据源,这个在实际开发中是很常见的一个需求,例如可以把一些长时间查询的sql放到备用数据库中,从而不影响主库的数据写入,也可以根据一定规则写入不同数据库,从而降低单个数据库的压力等等。
首先关注一下启动入口的Main方法
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class RuoYiApplication
这里在启动的时候禁止SpringBoot去读取yaml文件中spring.datasource中的配置信息,自动配置单数据源。后面会专门再写一篇笔记讲如何实现自定义数据源的,这篇文章主要讲在这个框架下面如何使用和配置多个数据源。
下一步关注一下application-druid.yml这个配置文件。这里是通过master和slave来区分主从数据源。要开启从库的数据源则要修改配置文件,把enabled改成true。
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password:
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
下一步,我们要看一下关于这一部分的配置文件DruidConfig.java。通过注解@ConfigurationProperties来映射到配置文件中的spring.datasource.druid.slave这部分的配置,再通过属性条件注解来判断配置是否生效。
@Bean
@ConfigurationProperties("spring.datasource.druid.slave")
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
public DataSource slaveDataSource(DruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
要使用备用数据源的话,框架里面已经定义了@DataSource这个注解,里面有枚举类型的DataSourceType。由此可见,这个框架对主从数据源这个功能做了很多层的封装。使用从库的话只要在Service层上面使用@DataSource(value = DataSourceType.SLAVE)这个注解就行了,其中注解可以直接使用在类上也可以使用在具体的方法上面。
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DataSource
{
/**
* 切换数据源名称
*/
public DataSourceType value() default DataSourceType.MASTER;
}
public enum DataSourceType
{
/**
* 主库
*/
MASTER,
/**
* 从库
*/
SLAVE
}
- 上一篇: SpringBoot 优雅实现动态数据源切换配置
- 下一篇: 手把手教你玩多数据源动态切换
猜你喜欢
- 2024-12-03 SpringBoot 动态多数据源及事务解决方案
- 2024-12-03 如何在Spring Boot中整合Druid数据源配置?
- 2024-12-03 连微服务Nacos配置中心都不了解,那你可能注定就是个码农
- 2024-12-03 Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
- 2024-12-03 Spring Boot 2.5 终于对数据源动刀了
- 2024-12-03 mysql和neo4j集成多数据源和事务
- 2024-12-03 MyBatis整合Springboot多数据源实现
- 2024-12-03 ShardingSphere-Proxy分库分表以及多租户安装使用
- 2024-12-03 手把手教你玩多数据源动态切换
- 2024-12-03 SpringBoot 优雅实现动态数据源切换配置
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)