当前位置: 首页 > news >正文

手机网站与电脑网站的区别手机应用市场下载安装到手机

手机网站与电脑网站的区别,手机应用市场下载安装到手机,网站的代码在哪里设置,wordpress站群大家好#xff0c;我是此林。 SpringBoot 手动实现动态切换数据源 DynamicSource #xff08;上#xff09;-CSDN博客 在上一篇博客中#xff0c;我带大家手动实现了一个简易版的数据源切换实现#xff0c;方便大家理解数据源切换的原理。今天我们来介绍一个开源的数据源…大家好我是此林。 SpringBoot 手动实现动态切换数据源 DynamicSource 上-CSDN博客 在上一篇博客中我带大家手动实现了一个简易版的数据源切换实现方便大家理解数据源切换的原理。今天我们来介绍一个开源的数据源切换框架是baomidou 旗下和 Mybatis-plus 同级的开源框架dynamic-datasource-spring-boot-starter。 1. 简介 dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。 其支持 Jdk 1.7, SpringBoot 1.5.x 2.x.x 3.x.x。 JPA用户不建议使用JPA自带事务无法连续切库。 2. 使用 下面基于SpringBoot2 做演示。 1.pom.xml dependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion4.3.1/version /dependency 2.application.yml spring:datasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:master:url: jdbc:mysql://192.168.183.128:3306/userusername: rootpassword: 123456slave_1:url: jdbc:mysql://192.168.183.128:3307/userusername: rootpassword: 123456slave_2:url: jdbc:mysql://192.168.183.128:3308/userusername: rootpassword: 123456 参数说明 以上会配置一个默认库master一个组slave下有两个子库slave_1,slave_2 后续我们会使用AOP注解的方式指定数据源。 例如DS(master)、DS(slave) 配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称相同组名称的数据源会放在一个组下。切换数据源可以是组名也可以是具体数据源名称。组名则切换时采用负载均衡算法切换。 例如当我们使用DS(slave)时指定了组名  “slave”那么它会采用负载均衡算法自动切换数据源。 因为我们后续希望实现Mysql主从读写分离所有写操作走master数据库所有读操作走slave从数据库。 3. 使用 DS 切换数据源。 Service public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic void insert(User user) {userMapper.insert(user);}OverrideDS(slave_1)public ListUser selectAll() {userMapper.selectAll();}OverrideDS(slave)public User selectById(Integer id) {return userMapper.selectById(id);} } 说明 insert() 方法没有加DS默认使用master数据库。 selectAll() 方法指定使用数据源slave_1 selectById() 使用slave组自动负载均衡查询。 注DS 可以注解在方法上或类上同时存在就近原则 方法上注解 优先于 类上注解。 若要实现Mysql主从自动复制还需要配置mysql主从复制详情参考博客 ShardingSphere5Mysql主从集群搭建、读写分离_shardingsphere mysql读写分离-CSDN博客 其中SpringBoot配置 ShardingSphere5 这一块不用管Mysql主从集群搭建是不变的。 4.其他实现 3. 底层原理 1. SpringBoot自动配置 我们找到 DynamicDataSourceAutoConfiguration.class。 这是框架的自动配置类。 这一段是从我们配置的application.yml 读取并设置相关属性也就是我们配置的数据源信息。 具体的话是赋值给 DynamicRoutingDataSource 这个对象。 2. 扫描DS注解 这是 DynamicDataSourceAnnotationInterceptor 的 invoke 方法典型的AOP。 在所有加了DS的方法上 1. 当执行目标方法的时候会先获取到DS(XXX)中数据源的名称dsKey。 2. 然后再把dsKey 存到ThreadLocal中也就是图中的DynamicDataSourceContextHolder。 3. 最后再开始执行目标方法。 3. DynamicRoutingDataSource 回到我们之前自动配置里说的 DynamicRoutingDataSource 观察 DynamicRoutingDataSource 的继承关系链发现它实现了Spring的 DataSource 和 InitializingBean 接口。 这和我们上一篇博客手动实现数据源切换的思路是一样的。 在 DynamicRoutingDataSource 里determineDataSource 从 ThreadLocal 里 获取到指定数据源名称 最后通过名称返回对应的DataSource数据源。 对比上一篇博客 SpringBoot 手动实现动态切换数据源 DynamicSource 上-CSDN博客 其实思路大差不差只不过 dynamic-datasource-spring-boot-starter 更加完善增加了AOP注解功能。 4. 无注解切换数据源 1. 自定义切面结合 DynamicDatasourceNamedInterceptor 对于所有以 select 方法开头的设置使用 slave 数据源 对于add、update、delete 开头的使用 master 数据源。 2. 自定义 Mybatis 拦截器对于所有的写操作使用 master 数据源所有读操作使用 slave 数据源。即把数据源标识写入 DynamicDataSourceContextHolder 中。 3. 其他场景SaaS多租户系统下每个租户使用独立的数据库那么可以要求前端携带请求头 “dsKey”。配置自定义拦截器拦截请求把dsKey 写入 DynamicDataSourceContextHolder。 今天的分享就到这里。 我是此林关注我吧带你看不一样的世界
http://www.hkea.cn/news/14539659/

相关文章:

  • 网站的建设费用预算卖公众号多少钱一个
  • 网站制作软件都是什么深圳建设银行网站首页
  • 郑州网站制作设计wordpress页面模板是哪个
  • 装修公司做网站的好处html5响应式布局
  • 泽成seo网站排名百姓网找房子租房
  • 牛网网站建设射阳网站建设
  • 做网站用电脑自带的大型企业网络建设方案
  • 网站建设推广文章wordpress适配手机
  • 网站建设有那几个类型adsl服务器建网站
  • php做网站主要怎么布局网站的费用可以做无形资产吗
  • 医院网站建设趋势响应式网站的原理
  • wordpress怎样建立二级菜单seo网页优化工具
  • 企业宣传模板图片上海seo推广整站
  • 网站建设推广注册公司在线画流程图的网站
  • 在什么网站做调查问卷wordpress搜索插件
  • 百度收录网站电话对电子商务网站建设与管理的理解
  • 网站开发国内外研究背景网站管理登录系统
  • 盘锦网站制作企业微信官网
  • 手表网站 二手不会做网站能做网络销售吗
  • 企业网站成功案例网络舆情处置公司
  • 主题公园旅游景区网站建设成都网站开发培训多少钱
  • asp.net网站开发项目化教程wordpress会员管理插件
  • 免费驾校网站模板龙炎电商软件
  • 广州增城区门户网站免费的网站在哪里下载
  • 旅游网站建设的重要性中国核工业第五建设
  • 比较好的商城网站设计西安专业做网站建设
  • 上海哪家公司做网站好山东省威海市文登区建设局网站
  • 电子商务网站建设与维护的考试高端网站建设知识
  • 贵阳58同城做网站公司有哪些返佣网站都是自己做的
  • 万站群cms云南省住房与城乡建设厅网站