广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot+Jpa项目配置双数据源怎么实现
  • 598
分享到

SpringBoot+Jpa项目配置双数据源怎么实现

2023-06-22 04:06:12 598人浏览 泡泡鱼
摘要

这篇文章主要介绍“SpringBoot+Jpa项目配置双数据源怎么实现”,在日常操作中,相信很多人在springBoot+Jpa项目配置双数据源怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Sprin

这篇文章主要介绍“SpringBoot+Jpa项目配置双数据源怎么实现”,在日常操作中,相信很多人在springBoot+Jpa项目配置双数据源怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot+Jpa项目配置双数据源怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

配置yml文件

server:  port: 8080spring:  profiles:    active: dev  jackson:    time-zone: GMT+8      # 这里是我们的数据库配置地方    datasource:    data1:  #这里是数据库一      driverClassName: com.mysql.cj.jdbc.Driver      url: jdbc:Mysql://192.168.0.77:3306/test1?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&rewriteBatchedStatements=true      username: root      passWord: 123      type: com.alibaba.druid.pool.DruidDataSource    data2:  #这里是数据库二      driverClassName: com.mysql.cj.jdbc.Driver      url: jdbc:mysql://192.168.0.88:3306/test2?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&rewriteBatchedStatements=true      username: root      password: 123      type: com.alibaba.druid.pool.DruidDataSource

当然到这里肯定是没有结束的,需要配置一些参数,否则启动会报错

创建数据源配置类

我们创建一个数据源的类,我们就给他取名为DataSourceConfig(这个名字自定义),在项目下创建一个包,方便管理

SpringBoot+Jpa项目配置双数据源怎么实现

package com.eman.cdn.common.dataSource;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.ImportAutoConfiguration;import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import javax.sql.DataSource;@Configurationpublic class DataSourceConfig { # 这里是我们在yml文件配置的位置    private final static String DB_TEST1 = "spring.datasource.test1";    private final static String DB_TEST2= "spring.datasource.test1"; # 这个Bean名字子自定义只要不是重复的Bean名字就行了    @Bean(name = "test1Properties")    @Qualifier("test1Properties")    @Primary    @ConfigurationProperties(DB_TEST1)    public DataSourceProperties test1Properties() {        return new DataSourceProperties();    }    @Bean(name = "test1DataSource")    @Qualifier("test1DataSource")    @Primary    @ConfigurationProperties(prefix = DB_TEST1)    public DataSource test1DataSource() {        return test1Properties().initializeDataSourceBuilder().build();    }    @Bean(name = "test2Properties")    @Qualifier("test2Properties")    @ConfigurationProperties(DB_TEST2)    public DataSourceProperties test2Properties() {        return new DataSourceProperties();    }    @Bean(name = "test2DataSource")    @Qualifier("test2DataSource")    @ConfigurationProperties(prefix = DB_ANALYSIS)    public DataSource test2DataSource() {        return test2Properties().initializeDataSourceBuilder().build();    }}

为每个数据库创建配置类

由于需要用到Mybaitis-plus所以你得先导入Mybaitis-Plus的依赖

<!--mybatis-plus-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.1.0</version>        </dependency>
package com.eman.xx.xxx.xx;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.ORM.jpa.HibernateProperties;import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.data.jpa.repository.config.EnableJpaRepositories;import org.springframework.orm.jpa.JpaTransactionManager;import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import javax.sql.DataSource;import java.util.Objects;@Configuration@EnableTransactionManagement@EnableJpaRepositories(        // 配置连接工厂        entityManagerFactoryRef = "tes1Factory",        // 配置事物管理器        transactionManagerRef = "tes1Transaction",        // 设置Jpa 的 repository所在位置        basePackages = {"com.xx.xx.xx.**.repository"})// 设置扫描的mapper@MapperScan(basePackages ="xx.xx.xx.test1.**.mapper", sqlSessionTemplateRef  = "tes1SqlSessionTemplate")public class AnalysisDataBaseConfig {    @Autowired    @Qualifier("tes1DataSource")    private DataSource analysisDataSource;    @Autowired    private JpaProperties jpaProperties;    @Autowired    private HibernateProperties properties;    // 以下是jpa的配置        @Bean(name = "tes1Factory")    public LocalContainerEntityManagerFactoryBean tes1Factory(EntityManagerFactoryBuilder builder) {        return builder                // 设置数据源                .dataSource(analysisDataSource)                //设置实体类所在位置.扫描所有带有 @Entity 注解的类                .packages("xx.xx.xx.tes1.**.entity")                // Spring会将EntityManagerFactory注入到Repository之中.有了 EntityManagerFactory之后,                // Repository就能用它来创建 EntityManager 了,然后 EntityManager 就可以针对数据库执行操作                .persistenceUnit("tes1")                // 为了加载yml中jpa下hibernate的相关配置                .properties(properties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings()))                .build();    }        @Bean(name = "tes1Transaction")    PlatformTransactionManager tes1Transaction(EntityManagerFactoryBuilder builder) {        return new JpaTransactionManager(Objects.requireNonNull(analysisFactory(builder).getObject()));    }    // 以下是mybatis的配置        @Bean("tes1SqlSessionFactory")    public SqlSessionFactory tes1SqlSessionFactory() throws Exception {        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();        sqlSessionFactory.setDataSource(analysisDataSource);        sqlSessionFactory.setMapperLocations(new         //这里填写你mybaits的xml文件存放的路径        PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper    @Bean(name = "tes1SqlSessionTemplate")    public SqlSessionTemplate tes1SqlSessionTemplate() throws Exception {        return new SqlSessionTemplate(tes1SqlSessionFactory());    }}

以此类推之后每增加一个数据库源就循环上面的方法
注意!!!!包一定要放对你配置的位置,否则不识别就会报错!!!!!!

到此,关于“SpringBoot+Jpa项目配置双数据源怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: SpringBoot+Jpa项目配置双数据源怎么实现

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

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

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

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

下载Word文档
猜你喜欢
  • SpringBoot+Jpa项目配置双数据源怎么实现
    这篇文章主要介绍“SpringBoot+Jpa项目配置双数据源怎么实现”,在日常操作中,相信很多人在SpringBoot+Jpa项目配置双数据源怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Sprin...
    99+
    2023-06-22
  • SpringBoot+Jpa项目配置双数据源的实现
    目录引言配置yml文件创建数据源配置类为每个数据库创建配置类引言 今天为大家带来一些非常有用的实战技巧,比如在我们需要对两个数据库进行操作的时候而哦我们通常用的只是单数据库查询,这...
    99+
    2022-11-12
  • springboot + JPA 配置双数据源实战
    目录springboot + JPA 配置双数据源1、首先配置application.yml文件设置主从数据库2、使用配置类读取application.yml配置的两个数据源3、然后...
    99+
    2022-11-12
  • springboot怎么配置双数据源
    在Spring Boot中配置双数据源,可以使用多个数据源的配置,并为每个数据源创建对应的Bean。以下是配置双数据源的步骤:1. ...
    99+
    2023-10-27
    springboot
  • SpringBoot项目怎么实现关闭数据库配置和springSecurity
    这篇文章主要介绍“SpringBoot项目怎么实现关闭数据库配置和springSecurity”,在日常操作中,相信很多人在SpringBoot项目怎么实现关闭数据库配置和springSecurity问题上存在疑惑,小编查阅了各式资料,整理...
    99+
    2023-06-20
  • springboot怎么配置双数据库
    在Spring Boot中配置双数据库可以使用多个数据源。可以按照以下步骤进行配置:1. 在application.properti...
    99+
    2023-10-21
    springboot 数据库
  • ssm怎么配置双数据源
    在 AWS Systems Manager (SSM) 中配置双数据源可以通过以下步骤完成:1. 登录 AWS 管理控制台并打开 S...
    99+
    2023-09-21
    ssm
  • SpringBoot项目实现关闭数据库配置和springSecurity
    SpringBoot关闭数据库配置和springSecurity 通过exclude不注入数据源和安全验证模块 @SpringBootApplication(exclude={D...
    99+
    2022-11-12
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
  • springboot中怎么配置数据源
    在Spring Boot中配置数据源有以下几种方式:1. 使用默认的数据源配置:Spring Boot提供了默认的数据源配置,只需要...
    99+
    2023-10-27
    springboot
  • Springboot怎么集成mybatis实现多数据源配置
    本文小编为大家详细介绍“Springboot怎么集成mybatis实现多数据源配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot怎么集成mybatis实现多数据源配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-02
  • 解决springboot项目不配置数据源启动报错问题
    目录springboot项目不配置数据源启动报错springboot配置双数据源报错springboot项目不配置数据源启动报错 spring boot默认会加载 org.spr...
    99+
    2022-11-12
  • springboot 中怎么配置DRUID数据源
    本篇文章为大家展示了springboot 中怎么配置DRUID数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.修改pom.xml<dependency>  &...
    99+
    2023-06-02
  • springboot+springJdbc+postgresql 实现多数据源的配置
    背景 最近公司在服务拆迁,接口转移,相同的功能接口到要迁移到对应的服务中,因为时间比较赶,别问为什么没给时间,没人,没资源,但是活还是得干的,为了减少工作量和稳妥的需要分两步走 ...
    99+
    2022-11-12
  • 怎么在SpringBoot中配置多数据源
    本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一...
    99+
    2023-06-14
  • 怎么使用SpringBoot配置多数据源
    这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom....
    99+
    2023-06-29
  • 如何在Java SpringBoot项目中配置动态数据源你知道吗
    目录首先需要引入第三方依赖只需要在配置文件中按照如下配置创建如下两个数据库entitymapper.xmlmapper层Service层下面是两个测试方法下面可以来看一下测试结果:在...
    99+
    2022-11-12
  • 如何解决springboot项目不配置数据源启动报错问题
    这篇文章给大家分享的是有关如何解决springboot项目不配置数据源启动报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。springboot项目不配置数据源启动报错spring boot默认会加载org....
    99+
    2023-06-22
  • SpringBoot怎么使用druid配置多数据源
    这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎...
    99+
    2023-07-05
  • SpringBoot+jpa配置怎么根据实体类自动创建表
    这篇文章主要介绍“SpringBoot+jpa配置怎么根据实体类自动创建表”,在日常操作中,相信很多人在SpringBoot+jpa配置怎么根据实体类自动创建表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作