2016-06-01 29 views
0

我是新的春天,試圖在2個不同的DB之間切換。我做了春天配置XML文件進行以下更改:如何在spring中使用2個或多個數據庫(xml配置)

<bean id="placeholderConfig" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="location" value="classpath:config/db-config.properties" /> 
    </bean> 

    <!-- MS Sql DB --> 
    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${db.driver}" /> 
     <property name="url" value="${db.url}" /> 
     <property name="username" value="${db.username}" /> 
     <property name="password" value="${db.password}" /> 
    </bean> 
    <!-- end --> 

    <!-- MySql DB --> 
    <bean id="dataSourceMySql" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${db.driver1}" /> 
     <property name="url" value="${db.url1}" /> 
     <property name="username" value="${db.username1}" /> 
     <property name="password" value="${db.password1}" /> 
    </bean> 
    <!-- end --> 

    <bean id="entityManagerFactory" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="packagesToScan" value="com.epam.model" /> 
     <property name="dataSource" ref="dataSource" /> 

     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.show_sql">false</prop> 
       <prop key="hibernate.hbm2ddl.auto"></prop> 
       <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect</prop> 
      </props> 
     </property> 

     <property name="persistenceProvider"> 
      <bean class="org.hibernate.jpa.HibernatePersistenceProvider" /> 
     </property> 

     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
    </bean> 



    <bean id="entityManagerFactoryMySql" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="packagesToScan" value="com.epam.model" /> 
     <property name="dataSource" ref="dataSourceMySql" /> 

     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.show_sql">false</prop> 
       <prop key="hibernate.hbm2ddl.auto"></prop> 
       <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect</prop> 
      </props> 
     </property> 

     <property name="persistenceProvider"> 
      <bean class="org.hibernate.jpa.HibernatePersistenceProvider" /> 
     </property> 

     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
     </property> 
    </bean> 



    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 

    <bean id="transactionManagerMySql" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactoryMySql" /> 
    </bean> 

    <tx:annotation-driven transaction-manager="transactionManager" /> 
    <tx:annotation-driven transaction-manager="transactionManagerMySql" /> 

    <jpa:repositories base-package="com.epam.repository" /> 

</beans> 

什麼,我需要在存儲庫或服務添加到指定我要工作,其分貝。

回答

0

感謝您的迴應。我只是在屬性文件中添加第二個數據庫特定的鍵/值,並根據數據庫類型,只是未註釋適當的鍵。

0

您可以使用@Resource註釋加載第二個數據源

+0

我在JobServiceImpl中添加了@Resource,但得到異常。我需要在其他地方添加嗎? – Maria

+0

應該工作..你有什麼異常? – Jobin

+0

org.springframework.web.context.support.XmlWebApplicationContext - 在上下文初始化期間遇到的異常 - 取消刷新嘗試:org.springframework.beans.factory.BeanCreationException:在類路徑資源[config/spring中定義名稱'entityManagerFactoryMySql' /database.xml]: – Maria

相關問題