我们就来画这样一个图,然后来谈一下多数据源,多数据源你们有没有遇到过的,这是你们做架构师必备的知识,不是很难,多数据源的一个应用场景,用的还真的比较广泛的,公司分为两个数据库,一个数据库是专门用来存储共同的数据库文件的,一个数据库是做垂直业务的数据库,外层加了缓存的,不用担心性能问题,垂直拆分和水平拆分,水平分表,水平分库,你们可能大型互联网公司的时候,垂直是根据业务划分具体的数据库,你就当成公司里有两套数据库就行了,在一个项目中有多个数据源,你们知道一个项目中最多有多少个数据源吗,数据源就是JDBC连接,是不同库的JDBC连接,不是不同的JDBC,在一个JDBC中有多个数据源,是不同库的JDBC,是连接不同库的JDBC,你们知道最多能有多少个数据源吗,其实是可以无限大,订单,商品,不同的库,你们知道当时有多少个JDBC连接吗,最高峰的时候是24个,因为项目太大了,只要你内存足就行了,所以本身是无限大,但是具体多少,根据你的内存,我是8G的开到24个数据源,就是连接了24个库,多数据源如何划分,比如你在一个项目当中,业务肯定是根据包来的,所以在这边我做两种,根据分包来的,不同业务他的模块包肯定不同,那么分包是根据什么来的,是不是业务来的,分包名进行区分的,这个你们肯定都没有用过的,根据注解方式的,使用注解方式划分多数据源,我先讲分包进行区分,那这两种哪种用的更多呢,他有各自有点,一般来说分包是用的最多的,因为他不用频繁加注解,加注解太麻烦了,你还要加注解表示指向哪个数据源,所以说一下他的原理是怎样的呢,比如com.learn.test01然后这里再建一个包com.learn.test02那么test01他指的是什么,相当于指向datasource01,我可以把它指向datasource01,如果是test02这个下面的,访问数据库的话,他是不是指向datasource2,我觉得这种方式用的比较广泛,你们知道这种方式类似于什么,类似于多个不同的jar包,这种方式是什么意思,我把这个包打成jar包,你们会发现,如果你用过开源框架的时候,开源框架里面也是连数据库的,它里面是通过jar包使用的,也是通过包名进行区分,类似于不同的jar包,是不同的业务需求,多个不同的业务需求,存放到同一个项目中去,就是把不同项目的业务模块,只是我们没有打包,打包其实分开的,不打包是在一起,在这个地方我们说一下注解的原理,注解方式用的不多,假设我现在这service层,如果我有多个数据源的情况下,自己定义了一个注解,自己写个注解,假设这个注解是我自己写的,@DataSource(ref="datasource1"),在里面指定一下,你要用哪个数据源,我想用datasource1,那么这个方法里面,就会直接读的datasource1,如果你想改成datasource2的话,用datasource2这个数据源,这种注解方式,其实是什么呢,是我们内部写的,并不是开源的,通过AOP拦截,我取出datasource2的情况下,我就给你获取到datasource2的连接,但是这种用法不多,特麻烦,为什么特别麻烦呢,如果我有1000个方法,1000个方法都要加这个指向,所以我还是觉得分包会好一点

新版本springboot-整合多数据源拆分思路相关推荐

  1. 【springboot整合多数据源】

    springboot整合多数据源 配置多数据 application.yaml 动态路由数据源 数据源上下文管理 数据源切面 MybatisPlusConfig配置 自定义方法注入器 扩展配置,帮助我 ...

  2. SpringBoot 整合Druid数据源SQL监控不显示问题

    SpringBoot 整合Druid数据源SQL监控不显示问题 项目场景: 问题描述: 解决方案: 项目场景: SpringBoot 整合Druid数据源SQL监控不显示 问题描述: 明明使用Drui ...

  3. SpringBoot整合Druid数据源页面访问报该页面无法正常运作

    SpringBoot整合Druid数据源页面访问报该页面无法正常运作 异常页面:请求访问页面成功但是该网页无法正常运行 正常的页面: 输入:账号admin 密码:123456 进入 我的代码 pom. ...

  4. springboot整合多数据源

    在项目开发中,尤其是在分布式项目中,数据源分布在不同的数据库是常有的事,在项目搭建之初,如果能够想到这个问题,提前规划好相应的项目结构,可以给后面的开发和维护省去很多麻烦: 今天演示一下使用sprin ...

  5. 新版本springboot整合@transactional注解

    多个包就以逗号隔开,讲一下SpringBoot的事务管理,这个时候我来问一下大家,Spring事务管理的时候,尤其整合事务的时候,效果没有出现,但是那时候可能没有人说,就过去了,我就专门研究了一下,没 ...

  6. Springboot整合多数据源(自定义注解+aop切面实现)

    原理: 通过后台配置多个数据源,自定义注解,通过aop配置注解切面,前端调用需要传递数据源参数,根据判断数据源参数,调用相应的service或mapper方法. 实现: 准备俩个数据库:俩张表 表sq ...

  7. SpringBoot2.0整合多数据源拆分

    前言 本文环境承接springboot2.0整合使用mybatis(数据访问篇) 一.什么是多数据源 公司分为两个数据库,一个数据库专门存放共同配置文件,一个数据库垂直业务数据库.垂直根据业务划分具体 ...

  8. SpringBoot整合Druid数据源

    关于SpringBoot数据源请参考我上一篇文章:https://www.cnblogs.com/yueshutong/p/9409295.html 一:Druid介绍 1. Druid是什么? Dr ...

  9. SpringBoot整合druid数据源,quartz定式框架

    整合了阿里数据源druid,quartz,mybatis,实用定时框架 一.引入依赖 <dependencies><dependency><groupId>org. ...

最新文章

  1. Marvelous Designer衣袖设计教程
  2. js与php时间戳,js时间戳与日期格式之间的互转
  3. UI2CODE智能生成代码——组件识别篇
  4. 使用爬虫刷blog访问量 随机代理IP 随机user_agent
  5. 移动端的推拉效果导航菜单-支持响应式及其多层菜单
  6. 05年的一个访谈记录
  7. 关于求已知整数数组的连续子数组的最大和的方法 ——基于软件工程的要求给予优化...
  8. 面包板是神马东西?。。
  9. html5 dat.gui,Dat.gui 使用教程
  10. EEG多元模式分析预测慈善捐赠行为
  11. 苏宁11.11:搜索引擎Solr在苏宁易购商品评价系统中的应用
  12. 大话西游2同一个账号同一个服务器,大话西游2:服务器合并你是否支持?老玩家告诉你合服后的影响!...
  13. 青少年模式形同虚设 半数App诱导打赏
  14. java全栈工程师前景,已整理成文档
  15. 计算机四级office试题及答案,2014年计算机一级ms office试题及答案 47
  16. Thinkpad T420,430等电脑使用微信进行语音视频时麦克杂音
  17. 世界历史———俄国历史
  18. 多目标跟踪算法,零基础极速入门(一)
  19. 用线性变换的角度理解旋转
  20. 数电模电EDA系统实验箱QY-JXSY11

热门文章

  1. WebAPI返回数据类型
  2. Android的Notification研究
  3. halcon基本语法和常用算法
  4. sharepoint数据库研究
  5. 【Spring MVC学习】spring mvc入门示例
  6. Jenkins+ant+Jenkins接口持续集成测试配置
  7. Magic Leap有新动态!成立由斯蒂芬森领头的内容团队
  8. Spring自定义注解简单使用四步走
  9. Hive:表1inner join表2结果group by优化
  10. Mongodb账号密码模式的基本认证