多数据源注入

  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();
    }
}`
  1. 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());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值