代码编织梦想

多数据源注入

  1. 数据源配置
    `@Configuration
    public class DataSourceConfig {

    @Bean(name = “purchaseDataSource”)
    @Qualifier(“purchaseDataSource”)
    @ConfigurationProperties(prefix = “spring.datasource.purchase”)
    @Primary
    public DataSource purchaseDataSource() {
    return DataSourceBuilder.create().build();
    }

    @Bean(name = “omsDataSource”)
    @Qualifier(“omsDataSource”)
    @ConfigurationProperties(prefix = “spring.datasource.oms”)
    public DataSource omsDataSource() {
    return DataSourceBuilder.create().build();
    }
    }`

  2. oms数据源配置

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactoryOms",
        transactionManagerRef = "transactionManagerOms",
        basePackages = {"com.allintechinc.purchase.repository.oms"})
public class OmsConfig {

    @Autowired
    @Qualifier("omsDataSource")
    private DataSource omsDataSource;

    @Autowired
    private HibernateProperties hibernateProperties;

    @Autowired
    private JpaProperties jpaProperties;

    @Primary
    @Bean(name = "entityManagerOms")
    public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
        return Objects.requireNonNull(entityManagerFactoryOms(builder).getObject()).createEntityManager();
    }

    @Primary
    @Bean(name = "entityManagerFactoryOms")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryOms(EntityManagerFactoryBuilder builder) {
        return builder.dataSource(omsDataSource)
                .properties(getHibernateProperties())
                //换成你自己的实体类所在位置
                .packages("com.allintechinc.purchase.entity.oms")
                .persistenceUnit("primaryPersistenceUnit")
                .build();
    }

    @Primary
    @Bean(name = "transactionManagerOms")
    public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
        return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactoryOms(builder).getObject()));
    }

    private Map<String, Object> getHibernateProperties() {
        return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
    }
}

3.purchase数据源配置

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactoryPurchase",
        transactionManagerRef = "transactionManagerPurchase",
        basePackages = {"com.allintechinc.purchase.repository.smPurchase"})
public class PurchaseConfig {

    @Autowired
    @Qualifier("purchaseDataSource")
    private DataSource purchaseDataSource;

    @Autowired
    private HibernateProperties hibernateProperties;

    @Autowired
    private JpaProperties jpaProperties;

    @Bean(name = "entityManagerPurchase")
    public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
        return Objects.requireNonNull(entityManagerFactoryPurchase(builder).getObject()).createEntityManager();
    }

    @Bean(name = "entityManagerFactoryPurchase")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryPurchase(EntityManagerFactoryBuilder builder) {
        return builder.dataSource(purchaseDataSource)
                .properties(getHibernateProperties())
                //换成你自己的实体类所在位置
                .packages("com.allintechinc.purchase.entity.smPurchase")
                .persistenceUnit("PurchasePersistenceUnit")
                .build();
    }

    @Bean(name = "transactionManagerPurchase")
    public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
        return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactoryPurchase(builder).getObject()));
    }

    private Map<String, Object> getHibernateProperties() {
        return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_49179516/article/details/129667159

手把手教你用springboot配置多数据源_ctrlz1的博客-爱代码爱编程_springboot配置多个数据源

1.文件结构: 2.pom: <project xmlns="http://maven.apache.org/POM/4.0.0"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/

jdbctemplate动态多数据源配置-爱代码爱编程

一、前言 多数据源的配置,是一个相对比较常见的需求。 什么是数据源?数据源就是javax.sql.DataSource,所有实现了这个接口的DataSource就叫做数据源,现在比较常用阿里巴巴的DruidDataSource,支持监控多数据源下的sql运行状况,便于以此实现以sql为核心的应用系统,比如BI报表系统、BI工具、ETL工具等。而这些场景

springboot整合mybatisplus配置多数据源-爱代码爱编程

前言 业务中,有一个需求,需要定时将一个库的部分业务表的数据同步到另一个库中,由于在现有的项目中进行改造比较麻烦,因此索性使用springboot和mybatisplus完成一个多数据源的环境搭建 简单说明一下,使用mybatis也是可以的,但项目中有技术要求,同时使用过mybatisplus之后,发现功能更加强大,而且使用很灵活,因此就选择了这个组件

springboot 多数据源添加事务管理-爱代码爱编程

1.添加一个配置文件 package com.hanhuide.driver.config; import com.hanhuide.driver.dataSource.DataSourceNames; import javax.sql.DataSource; import org.springframework.beans.factory.ann

SpringBoot多数据源-爱代码爱编程

多套数据源: ​ 定义:在项目中针对一个数据库都为其建立一套独立的数据处理逻辑,包括数据源(DataSource),会话工厂(SqlSessionFactory),连接,DAO操作。 一、搭建springboot工程 ​ 项目工程结构如下所示,主要从实体类和Mapper层开始进行划分,实际工作可从Service层进行划分。 ├─config -

springboot+mongodb多数据源配置-爱代码爱编程

目录 1、前言 2、mongodb多数据源配置 2.1 maven依赖 2.2 mongodb配置 2.3 创建mongodb属性类和配置类 3、设置数据源的路由key 以及 查找数据源 3.1 定义数据源枚举 3.2 模板DynamicMongoTemplater 4、切面 4.1 定义切面注解 4.2 切面实现类 5 测试con

spring多数据源解决方案_spring 热更新多数据源-爱代码爱编程

在平时开发过程中,很多内部的项目都是直接访问多个数据库,这样平时一个项目一个数据库就不够用了,spring支持多数据源。笔者这里记录三种平时常看到的多数据源整合方式。 第一种:复制多个bean 情景:数据库的读量比较大,

springboot集成dynamic-爱代码爱编程

springboot在集成dynamic-datasource后配置多数据源其实还是很简单的。 pom依赖 <!-- dynamic-datasource 依赖--> <dependency> <groupId>com.baomidou</groupI