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

微网站和手机网站的区别wordpress首页分类

微网站和手机网站的区别,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/14349712/

相关文章:

  • 新手学做网站 下载营销战略包括哪些方面
  • 大型网站建设哪家服务好做学历提升的能在哪个网站上宣传
  • 宁波网站公司哪里好黄陂网站建设
  • 外国人做中国数学视频网站数据开发网站模板
  • 合肥品牌型网站建设地址永州建设网站制作
  • 购物网站后台流程图wordpress友链顺序
  • 夏邑做网站建站一条龙设计制作
  • 咸阳做网站价格做科技汽车的视频网站
  • 凡科网站自己如何做apache php wordpress
  • nginx 安装wordpressseo包年优化费用
  • 微信营销网站(含html源文件)免费下载微信怎么开通微商城
  • 怎么做 在线电影网站wordpress postpass
  • 东莞热点网站建设小贷网站需要多少钱可以做
  • 微商城网站建设合同下载长沙市建设局网站
  • 同一人可以做几个网站的负责人旅游网站开发成本包括
  • 什么是网站模块怎么维护网站
  • 叶榭做网站怎么模仿一个网站
  • 网站转化率低高清视频素材下载网站
  • 知乎网站怎么做推广福田网站开发
  • 怎么样建设公司网站网站开发选题背景
  • 效益成本原则网站建设手机网站图片切换特效
  • 做网站需要多大的显存wordpress ie6主题
  • 广州公司网站制作招聘信息成都手机网站建设哪家公司好
  • 甘肃省建设厅网站官网WordPress附件图片弹窗
  • 制作酒店网站百度推广seo
  • 网站开发软件标书范本百度seo不正当竞争秒收
  • 门户网站界面设计模板下载禁止国内ip访问 网站
  • 外贸建网站wordpress 中英主题
  • wordpress不显示网站标题江西网站设计电话
  • 百度注册域名免费建站有免费查企业的软件吗