2016-03-31 3 views
0

Я пытаюсь подключить 2 разных schemas в моем приложении .Настройка Spring для использования нескольких источников данных

Для этого у меня есть 2 разных data sources. Как мне настроить это в моих файлах свойств?

Я видел this answer, который дал мне представление о том, как это сделать. Я в настоящее время имеют следующие 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, или я могу сделать это все в одном?

ответ

1

В документации 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

Вы можете получить доступ к ним с помощью @Autowire из других бобов , Вы можете связать префикс с каждым источником данных, чтобы его можно было сконфигурировать в файле application.properties или application.yml.

Вы также можете установить его как первичный.

0

С весной вы можете сделать это легко.

Было бы что-то вроде этого:

<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"/> 

И вы можете использовать только один файл, или три. Это действительно зависит от вас.

Смежные вопросы