sharing-jdbc读写分离(二)--自定义配置数据源

前言

  在使用shrading jdbc实现读写分离的基础上,本篇将介绍自定义配置数据源。读写分离配置可参考我另一篇文章:https://blog.csdn.net/u012786993/article/details/89368423
  配置代码参考我的GitHub:https://github.com/hubSKH/sharding-jdbc-demo/tree/pwd_dev

实现步骤

1、关闭sharding jdbc的自动配置

  正常情况下,应用sharding jdbc的jar包之后,工程启动sharding会读取配置文件(application.yml等)中对应的数据源配置(根据前缀),然后直接创建数据源。而此时,一些自定义的配置方式会导致SQLException等异常抛出,如以密文的形式配置数据库密码,创建数据源的时候会因为缺失解密操作而抛出“Access denied for user XXX”的SQLException。
  所以,在实现自定义配置数据源之前需要关闭sharding jdbc的数据源自动配置。具体做法为:在启动类的@SpringBootApplication的exclude增加io.shardingsphere.jdbc.spring.boot.SpringBootConfiguration类即可。
在这里插入图片描述

2、创建数据源配置类

  创建类ShardingDataSourceConfig,在类中实现自动以数据源装配,具体实现可参考上一步中关闭自动配置的SpringBootConfiguration类。
在这里插入图片描述
  然后根据配置前缀,循环读取数据源,创建数据源,本工程使用阿里的druid数据源,所以直接创建DruidDataSource数据源对象,其他使用其他数据源(c3p0,hikari,个人更喜欢使用druid)需要修改数据源对象,或者直接使用数据源接口DataSource。因为工程配置文件中,数据库密码以密文写入,在创建数据源时需要解密操作,通用接口DataSource满足不了自定义配置的操作。
在这里插入图片描述
  在创建数据源的同时,还可以自定义数据源最大连接、心跳等配置。考虑篇幅有限,数据源的大部分相同,本工程将这些数据源配置放置一起,每个数据源配置一样的参数。
在这里插入图片描述
  实际开发中,如果数据库的压力不一样的话,则不建议使用这种配置方式,应改为在每个数据源配的配置项中各自配置,然后由DataSourceUtil.getDataSource加载这些配置。不过要注意的是配置项的名称需要与对应数据源的属性相同(相同数据源,版本不同,属性也可能有所改变)。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值