springboot数据源oracle,SpringBoot 配置Oracle数据源 @Primary

项目中已经有一个数据库Cassandra在使用,因为要操作另外一张表的数据,来达到需求的实现,要配置另外一个数据库Orcale,数据springboot的多数据源配的了,

期初不知道,就按照普通的数据库的配置来做,发现不行,领导过来一看,也说你得看看springboot的数据库配置了,不太一样,找了找其他项目上的Oracle配置,试着做了一下

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.DependsOn;

import org.springframework.context.annotation.Primary;

import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

import org.springframework.jdbc.core.JdbcTemplate;

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.persistence.EntityManager;

import javax.sql.DataSource;

@EnableTransactionManagement

@EnableJpaRepositories(

entityManagerFactoryRef="entityManagerFactoryPrimary",

transactionManagerRef="transactionManagerPrimary",

basePackages= {"com.nokia.coap.adapter.dbmsm.repo"})

@Configuration

public class OracleDBConf{

@Bean(name = "primaryDataSource")

@Primary

@Qualifier("primaryDataSource")

@ConfigurationProperties(prefix="oracleDS")

public DataSource primaryDataSource() {

return DataSourceBuilder.create().build();

}

@DependsOn({"primaryDataSource"})

@Value("#{primaryDataSource}")

@Bean(name = "primaryJdbcTemplate")

public JdbcTemplate primaryJdbcTemplate(

@Qualifier("primaryDataSource") DataSource dataSource) {

return new JdbcTemplate(dataSource);

}

@Primary

@Bean(name = "entityManagerPrimary")

public EntityManager entityManager(EntityManagerFactoryBuilder builder) {

return entityManagerFactoryPrimary(builder).getObject().createEntityManager();

}

@Primary

@Bean(name = "entityManagerFactoryPrimary")

public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) {

return builder

.dataSource(primaryDataSource())

//.properties(getVendorProperties(primaryDataSource))

.packages("com.nokia.coap.adapter.dbmsm.model") //设置实体类所在位置

.persistenceUnit("primaryPersistenceUnit")

.build();

}

@Primary

@Bean(name = "transactionManagerPrimary")

public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {

return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());

}

}

配置文件(.yml):

oracleDS:

platform: oracle

url: jdbc:oracle:thin:test/test@127.0.0.1:1521/oracle

username: test

password: test

driverClassName: oracle.jdbc.driver.OracleDriver

max-active: 10

max-idle: 5

min-idle: 2

initial-size: 6

validation-query: select 1 from dual

test-while-idle: true

pom.xml:

com.oracle.jdbc

ojdbc7

12.1.0.2

org.hibernate.javax.persistence

hibernate-jpa-2.1-api

1.0.0.Final

org.springframework.data

spring-data-jpa

1.11.12.RELEASE

org.springframework.boot

spring-boot-starter-data-jpa

${springboot.version}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值