SpringBoot -- 整合Druid实现多数据源动态切换

前言:博文详述知识来源若依框架,可供大家一起探讨学习和分享!一、针对本文讲解需求,我们需要先创建两个数据库进行学习,在这里我使用的是master_test和slave_test两个库,两个库中创建同一张表t_user,字段结构如下:master_test库中t_user表:slave_test库中t_user表:二、项目创建,在这里博主使用eclipse创建一个...
摘要由CSDN通过智能技术生成

前言:博文详述知识来源若依框架,可供大家一起探讨学习和分享!

一、针对本文讲解需求,我们需要先创建两个数据库进行学习,在这里我使用的是master_test和slave_test两个库,两个库中创建同一张表t_user,字段结构如下:

master_test库中t_user表:

slave_test库中t_user表: 

 

二、项目创建,在这里博主使用eclipse创建一个多模块的maven项目,结构如下:

layduo 父级目录
layduo-admin 后台服务
layduo-common 通用工具
layduo-framework 框架核心
layduo-system 系统配置

接下就直接进入主题了,其他相关包依赖pom文件,可以参考git项目代码(末尾提供)。

三、动态数据源配置,这里使用的数据源是Druid,实现数据源之间的切换通过自定义注解@DataSource,配置Aop进行切换application-druid.yml的主从数据库

layduo-admin添加项目全局配置文件和数据源配置文件(本文主要以yml文件形式讲解)

application.yml (这里主要关注server配置端口和访问路径、以及spring.profiles.active数据源文件引用就行,其他的可往后配置)

#项目相关配置
layduo:
   #名称
   name: Layduo
   #版本
   version: 4.1.0
   #版本年份
   copyrightYear: 2019
   #实例演示开关
   demoEnabled: true
   #文件路径( Windows配置D:/layduo/uploadPath,Linux配置 /home/layduo/uploadPath)
   profile: D:/layduo/uploadPath
   #获取ip地址开关
   addressEnabled: true
   
#开发环境配置
server:
   #服务器HTTP端口,默认为80
   port: 80
   #应用访问路径
   servlet:
      context-path: /
   tomcat:
      #tomcat的URI编码
      uri-encoding: UTF-8
      #tomcat最大线程数,默认为200
      max-threads: 800
      #tomcat启动初始化的线程数,默认为25
      min-spare-threads: 30
      
#日志配置
logging:
   level:
      com.layduo: debug
      org.springframework: warn
      
#用户配置
user:
   password:
      #密码错误{maxRetryCount}次锁定10分钟
      maxRetryCount: 5
      
#spring配置
spring:
   #模板引擎
   thymeleaf:
      mode: HTML
      encoding: UTF-8
      #禁用缓存
      cache: false
   #国际资源信息
   messages:
      #国际化资源文件路径
      basename: static/i18n/messages
   #格式化时间格式
   jackson:
      time-zone: GMT+8
      date-format: yyyy-MM-dd HH:mm:ss
   #引用数据源文件
   profiles:
      active: druid
   #文件上传
   servlet:
      multipart:
        #单个文件大小
        max-file-size: 10MB
        #设置总上传文件大小
        max-request-size: 20MB
   #服务模块
   devtools:
      restart:
        #热部署开关
        enabled: true
      
#mybatis配置
mybatis:
   #搜索指定包别名
   typeAliasesPackage: com.layduo.**.domain
   #配置mapper的扫描,找到所有mapper.xml映射文件
   mapperLocations: classpath*:mapper/**/*Mapper.xml
   #加载mybatis全局的配置文件
   configLocation: classpath:mybatis/mybatis-config.xml
   
#pagehelper分页插件
pagehelper:
   helperDialect: mysql
   reasonable: true
   supportMethodsArguments: true
   params: count=countSql
   
#shiro
shiro:
   user:
      #登录地址
      loginUrl: /login
      #权限认证失败地址
      unauthorizedUrl: /unauth
      #首页地址
      indexUrl: /index
      #验证码开关
      captchaEnabled: true
      #验证码类型: math数据计算、char字符检验
      captchaType: math
   cookie:
      #设置cookie的域名 默认为空,即当前访问的域名
      domain:
      #设置cookie的有效访问路径
      path: /
      #设置HttpOnly属性
      httpOnly: true
      #设置cookie的过期时间,单位为天
      maxAge: 30h
   session:
      #session超时时间,-1代表永不过期(默认为30分钟)
      expireTime: 30
      #同步session到数据库的周期(默认1分钟)
      dbSyncPeriod: 1
      #相隔多久检查一次session的有效性,默认10分钟
      validationInterval: 10
      #同一个用户最大会话数,比如1的意思是同一个账号允许最多同时一个人登录(默认-1不限制)
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值