栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

多数据源配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多数据源配置

切换数据源 @DS(“数据源名称”)

最近工作中遇到多数据源问题,简单记录一下,并未实际配置一遍。(开发前开发经理已经配置好了,菜鸟我只负责增删改查)

  • java
  • springboot
实现多数据源访问的过程 step1 引入依赖

pom.xml文件中引入 dynamic-datasource-spring-boot-starter 依赖



    com.baomidou
    dynamic-datasource-spring-boot-starter
    ${version}

step2 配置数据源

yml文件,一定要注意添加空格
以下配置了一个默认库master,一个组group下有两个子库group_1,group_2,一个GBase库g_base

spring:
  autoconfigure:
    # 多数据源必须增加此配置,排除原生 Druid 的快速配置类
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    dynamic:
      druid:
        proxy-filters:
          - sqlLogInterceptor
      # 设置默认数据源为master
      primary: master
      # 设置严格模式,未匹配到数据源时,是否启动默认数据源
      strict: true
      datasource:
        # mysql数据源
        master:
          url: jdbc:mysql://127.0.0.1:3306/factory
          username: root
          password: 123456
        # sqlServer数据源
        group_1:
          url: jdbc:jtds:sqlserver://127.0.0.1:3306/factory
          username: root
          password: 123456
        group_2:
          url: jdbc:jtds:sqlserver://127.0.0.1:3306/factory
          username: root
          password: 123456
        # GBase数据源
        g_base:
          type: com.gbase.jdbc.jdbc2.optional.GBaseDataSource
          driver-class-name: com.gbase.jdbc.Driver
          url: jdbc:gbase://127.0.0.1:3306/factory
          username: root
          password: 123456

step3 使用@DS切换数据源

使用@DS注解切换数据源
@DS(“数据源名称”) 可以为组名,也可以为某个具体库的名
@DS可以注解在方法上或类上,同时存在则采取就近原则,方法上注解优于类上注解

注:开发过程中遇到一些问题,注解到方法上没生效,原因未知

@Service
@DS("g_base")
public class FactoryServiceImpl implements FactoryServiceImpl {
	@Autowired
   private UserService userService;
   
   public String saveInfo (String faultDate) {
   	……
   }
}
step4 集成Druid
  • 方法一(推荐)
    在 yml 文件中配置 spring.autoconfigure.exclude:
spring:
  autoconfigure:
    # 多数据源必须增加此配置,排除原生 Druid 的快速配置类
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  • 方法二(某些springBoot版本可能失效)
    1、引入依赖 druid-spring-boot-starter
        
            com.alibaba
            druid-spring-boot-starter
            1.2.1
        

2、排除原生 Druid 的快速配置类
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class SaleApplication {
public static void main(String[] args) {
SpringApplication.run(FactoryApplication.class, args);
}
}

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036358.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号