繁体   English   中英

配置Spring使用多个数据源

[英]Configuring Spring to useMultiple Data Sources

我试图在我的spring boot应用程序中连接2个不同的schemas

为此,我有2个不同的data sources 我应该如何在我的属性文件中配置它?

我看到了这个答案 ,使我对如何做到这一点有了想法。 我的应用程序中目前有以下3个属性文件:

1. application.properties
2. hibernate.properties
3. multiple-db.properties

application.properties当前为空。 以下是其他2个文件:

hibernate.properties:

# Connection configuration
hibernate.connection.username= my_uname1
hibernate.connection.password= my_pword1

multiple-db.properties:

# Schema 1-Data source configuration
oracle.db.username1= my_uname1
oracle.db.password1= my_pword1
oracle.db.url1= my_url1

# Schema 2-Data source configuration
oracle.db.username2= my_uname2
oracle.db.password1= my_pword2
oracle.db.url2= my_url2

# JPA configuration
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect

# Hibernate configuration
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=my_url

hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider

这是正确的方法吗? 我是否需要3个properties files ,或者我可以全部做到这一点?

Spring文档建议了一种创建主要和辅助数据源的方法: http : //docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-two-datasources

可以按以下说明配置每个数据源: http : //docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-configure-a-datasource

您可以使用其他bean中的@Autowire来访问它们。 您可以将前缀与每个数据源相关联,以便可以在application.propertiesapplication.yml文件中对其进行配置。

您也可以将其中一个设置为主。

使用Spring,您可以轻松做到这一点。

就像这样:

<bean id="dataSource_1"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/northwind" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>

<bean id="dataSource_2"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/northwind_dup" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>

您还可以使用属性文件并执行以下操作:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<context:property-placeholder location="jdbc.properties"/>

而且您只能使用一个或三个文件。 真的取决于您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM