广告
返回顶部
首页 > 资讯 > 精选 >Springboot整合多数据源配置流程是什么
  • 431
分享到

Springboot整合多数据源配置流程是什么

2023-07-05 16:07:17 431人浏览 八月长安
摘要

这篇文章主要讲解了“SpringBoot整合多数据源配置流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot整合多数据源配置流程是什么”吧!主要介绍两种整合方式,分别

这篇文章主要讲解了“SpringBoot整合多数据源配置流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot整合多数据源配置流程是什么”吧!

主要介绍两种整合方式,分别是 springboot+mybatis 使用分包方式整合,和 springboot+druid+mybatisplus 使用注解方式整合。

多数据源整合

1. springboot+mybatis使用分包方式整合

1.1 主要依赖包

spring-boot-starter-WEB
mybatis-spring-boot-starter
mysql-connector-java

pom.xml jar包如下:

<!-- spring 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Mysql 依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
1.2 application.yml 配置文件

server:port:8080# 启动端口spring:datasource:db1:# 数据源1jdbc-url:jdbc:mysql://localhost:3306/db1?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8username:rootpassWord:rootdriver-class-name:com.mysql.cj.jdbc.Driverdb2:# 数据源2jdbc-url:jdbc:mysql://localhost:3306/db2?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8username:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driver

注意事项

各个版本的 springboot 配置 datasource 时参数有所变化,例如低版本配置数据库 url 时使用 url 属性,高版本使用 jdbc-url 属性,请注意区分。

1.3 建立连接数据源的配置文件

第一个配置文件

@Configuration@MapperScan(basePackages = "com.qizhidao.demo.mapper.db1", sqlSessionFactoryRef = "db1SqlSessionFactory")publicclassDataSourceConfig1 {    @Primary// 表示这个数据源是默认数据源, 这个注解必须要加,因为不加的话spring将分不清楚那个为主数据源(默认数据源)@Bean("db1DataSource")@ConfigurationProperties(prefix = "spring.datasource.db1")//读取application.yml中的配置参数映射成为一个对象public DataSource getDb1DataSource(){        return DataSourceBuilder.create().build();    }    @Primary@Bean("db1SqlSessionFactory")public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource)throws Exception {        SqlSessionFactoryBeanbean=newSqlSessionFactoryBean();        bean.setDataSource(dataSource);        // mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)        bean.setMapperLocations(newPathMatchingResourcePatternResolver().getResources("classpath*:mapping/db1/*.xml"));        return bean.getObject();    }    @Primary@Bean("db1SqlSessionTemplate")public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory){        returnnewSqlSessionTemplate(sqlSessionFactory);    }}

第二个配置文件

@Configuration@MapperScan(basePackages = "com.example.demon.mapper.db2", sqlSessionFactoryRef = "db2SqlSessionFactory")publicclassDataSourceConfig2{    @Bean("db2DataSource")@ConfigurationProperties(prefix = "spring.datasource.db2")public DataSource getDb1DataSource(){        return DataSourceBuilder.create().build();    }    @Bean("db2SqlSessionFactory")public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();        bean.setDataSource(dataSource);        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapping/db2/*.xml"));        return bean.getObject();    }    @Bean("db2SqlSessionTemplate")public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory){        return new SqlSessionTemplate(sqlSessionFactory);    }}
1.4 具体实现

项目结构如下:

注意事项

  • 在 service 层中根据不同的业务注入不同的 dao 层

  • 如果是主从复制- -读写分离:比如 db1 中负责增删改,db2 中负责查询。但是需要注意的是负责增删改的数据库必须是主库(master)

2. springboot+druid+mybatisplus使用注解整合

2.1 主要依赖包

spring-boot-starter-web

mybatis-plus-boot-starter

dynamic-datasource-spring-boot-starter # 配置动态数据源

druid-spring-boot-starter # 阿里的数据库连接池

mysql-connector-java

pom.xml 引入jar如下:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>2.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.20</version></dependency>
2.2 application.yml 配置文件

server:port:8080spring:datasource:dynamic:primary:db1# 配置默认数据库datasource:db1:# 数据源1配置url:jdbc:mysql://localhost:3306/db1?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8username:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driverdb2:# 数据源2配置url:jdbc:mysql://localhost:3306/db2?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8username:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driverdurid:initial-size:1max-active:20min-idle:1max-wait:60000autoconfigure:exclude:com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure# 去除druid配置

DruidDataSourceAutoConfigure会注入一个DataSourceWrapper,其会在原生的spring.datasource下找 url, username, password 等。动态数据源 URL 等配置是在 dynamic 下,因此需要排除,否则会报错。排除方式有两种,一种是上述配置文件排除,还有一种可以在项目启动类排除:

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)publicclassApplication {  publicstaticvoidmain(String[] args) {    SpringApplication.run(Application.class, args);  }}
2.3 给使用非默认数据源添加注解@DS

@DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解。

注解在 service 实现或 mapper 接口方法上,不要同时在 service 和 mapper 注解。

@DS("db2")publicinterfaceUserMapperextendsBaseMapper<User> {}@Service@DS("db2")publicclaSSModelServiceImplextendsServiceImpl<ModelMapper, Model> implementsIModelService {}  @Select("SELECT * FROM user")@DS("db2")  List<User> selectAll();

感谢各位的阅读,以上就是“Springboot整合多数据源配置流程是什么”的内容了,经过本文的学习后,相信大家对Springboot整合多数据源配置流程是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Springboot整合多数据源配置流程是什么

本文链接: https://www.lsjlt.com/news/353517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot整合多数据源配置流程是什么
    这篇文章主要讲解了“Springboot整合多数据源配置流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot整合多数据源配置流程是什么”吧!主要介绍两种整合方式,分别...
    99+
    2023-07-05
  • Springboot整合JPA配置多数据源流程详解
    目录1. Maven2. 基本配置DataSource3. 多数据源配置3.1 JpaConfigOracle3.2 JpaConfigMysql4. Dao层接口1. Maven ...
    99+
    2022-11-21
    Springboot整合JPA配置多数据源 Springboot多数据源
  • springboot整合多数据源配置的方式是什么
    这篇文章将为大家详细讲解有关springboot整合多数据源配置的方式是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。简介主要介绍两种整合方式,分别是 springboot+mybati...
    99+
    2023-06-22
  • springboot整合druid及多数据源配置
    前言 本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 一、springboot整合druid的演示demo 可以用idea快速生成一个可运行的dem...
    99+
    2023-10-24
    spring boot java spring
  • springboot整合多数据源配置方式
    目录简介一、表结构二、多数据源整合1. springboot+mybatis使用分包方式整合1.1 主要依赖包1.2 application.yml 配置文件1.3 建立连接数据源的...
    99+
    2022-11-12
  • Springboot多数据源配置之怎么整合dynamic-datasource
    本篇内容介绍了“Springboot多数据源配置之怎么整合dynamic-datasource”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2023-07-05
  • 详解Springboot之整合JDBCTemplate配置多数据源
    目录一、前言二、配置文件三、数据源配置类一、前言 现在在我们的项目中,使用多数据源已经是很常见的,下面,这里总结一下springboot整合jdbcTemplate配置多数据源的代码...
    99+
    2022-11-12
  • Springboot多数据源配置之整合dynamic-datasource方式
    目录多数据源配置之整合dynamic-datasourcePOM里加入依赖包yml增加多数据配置:在需要切换数据源的类或方法上加@DS注解dynamic-datasource-spr...
    99+
    2023-03-21
    Springboot多数据源配置 Springboot整合dynamic-datasource Springboot dynamic-datasource
  • SpringBoot整合MybatisPlus配置多数据源增强插件的方法是什么
    本篇内容介绍了“SpringBoot整合MybatisPlus配置多数据源增强插件的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2023-06-02
  • SpringBoot多数据源配置的过程是什么
    本篇内容主要讲解“SpringBoot多数据源配置的过程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot多数据源配置的过程是什么”吧!前言多数据源的核心就是向 IOC 容...
    99+
    2023-06-25
  • SpringBoot整合mysql、postgres、sqlserver实现多数据源配置案例
            分享一下近期处理的一个小demo,关于配置多数据源实现不同服务之间的数据推送和数据治理。第一次接触到pg库和sqlserver一头雾水,选择了JDBC+mybatis-plus的方式去链接。 首先要引入以下依赖 org.sp...
    99+
    2023-10-07
    java mybatis
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
  • SpringBoot整合Mybatis Plus多数据源的实现方法是什么
    这篇文章主要讲解了“SpringBoot整合Mybatis Plus多数据源的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot整合Mybatis Plus多数...
    99+
    2023-06-25
  • Springboot集成mybatis实现多数据源配置详解流程
    新建springboot工程,引入web、mysql、mybatis依赖 <dependency> <groupId>org.sp...
    99+
    2022-11-13
  • springboot mybatis druid配置多数据源教程
    目录1、项目代码结构2、导入基本依赖3、配置多数据源4、配置类5、启动类6、测试使用的表7、测试表对应的实体类8、持久层:dao层接口1、项目代码结构 2、导入基本依赖 记得需要导...
    99+
    2022-11-12
  • 怎么在SpringBoot中配置多数据源
    本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一...
    99+
    2023-06-14
  • 怎么使用SpringBoot配置多数据源
    这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom....
    99+
    2023-06-29
  • SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
    多数据源配置 首先是配置文件 这里采用yml配置文件,其他类型配置文件同理 我配置了两个数据源,一个名字叫ds1数据源,一个名字叫ds2数据源,如果你想配置更多的...
    99+
    2022-11-11
  • SpringBoot多数据源配置的全过程记录
    目录前言 配置文件 依赖 构建 AbstractRoutingDataSource 数据源切换 目录 总结 前言 多数据源的核心就是向 IOC 容器注入 AbstractRouti...
    99+
    2022-11-12
  • SpringBoot怎么使用druid配置多数据源
    这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作