我们就来画这样一个图,然后来谈一下多数据源,多数据源你们有没有遇到过的,这是你们做架构师必备的知识,不是很难,多数据源的一个应用场景,用的还真的比较广泛的,公司分为两个数据库,一个数据库是专门用来存储共同的数据库文件的,一个数据库是做垂直业务的数据库,外层加了缓存的,不用担心性能问题,垂直拆分和水平拆分,水平分表,水平分库,你们可能大型互联网公司的时候,垂直是根据业务划分具体的数据库,你就当成公司里有两套数据库就行了,在一个项目中有多个数据源,你们知道一个项目中最多有多少个数据源吗,数据源就是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. DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描...
  2. 在Linux上挂载Windows共享文件夹
  3. Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal
  4. 解决webpack 打包出现额外的xxxx.LICENSE.js文件
  5. Go学习笔记—Go并发基础
  6. UVa10006-Carmichael Numbers
  7. HDFS 基础部分详解
  8. 由一条编译报错信息,引出两个Go编译的重要知识
  9. IBC 2019 五篇文章阅读笔记
  10. C# 使用RestSharp库实现POST请求
  11. 编译原理——词法分析程序
  12. 有关计算机病毒种类书籍,计算机病毒的分类
  13. 图片云存储以及图片外链
  14. SafeNet在软件保护与授权领域有三大知名品牌
  15. 解决谷歌浏览器form表单自动填充
  16. 教你如何更改U盘图标
  17. devops1--k8s安装
  18. bzoj 3811: 玛里苟斯(期望+线性基)
  19. openquery链表删除时报错 “数据提供程序或其他服务返回 E_FAIL 状态”
  20. 重置找不到计算机,重置Win10电脑时提示找不到恢复环境的解决教程

热门文章

  1. 图解JavaScript算法排序
  2. Luogu2295 MICE
  3. Apache虚拟目录和多端口多主机名配置
  4. HTML 块标签,行内标签,行内块标签以及之间的相互转换
  5. Exchannge 2013数据库副本频繁自动切换
  6. HTML5学习笔记简明版(9):变化的元素和属性
  7. 简单配置局域网FTP
  8. 多继承有什么坏处,为什么java搞单继承,接口为什么可以摈弃这些坏处
  9. cisco 动态多点***原理
  10. 那些年,我深爱着的PPT(一)