2016-06-01 3 views
0

저는 봄에 새로운 데 두 DB를 전환하려고합니다. 나는 봄 구성 XML 파일에서 이러한 변경 한 :spring (xml 구성)으로 2 개 이상의 데이터베이스를 사용하는 방법

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

내가 작업 할 dB 지정 저장소 또는 서비스에 추가 할 필요.

답변

0

응답 해 주셔서 감사합니다. 방금 등록 정보 파일에 2 번째 db 특정 키/값이 추가되었으며 db 유형에 따라 적절한 주석 처리가 제거되었습니다.

0

@Resource 주석을 사용하여 두 번째 데이터 소스를로드 할 수 있습니다.

+0

@Resource를 JobServiceImpl에 추가했지만 예외가 발생합니다. 다른 곳에 추가해야하나요? – Maria

+0

이 작동해야합니다 .. 예외는 무엇입니까? – Jobin

+0

org.springframework.web.context.support.XmlWebApplicationContext - 컨텍스트 초기화 중에 예외가 발생 함 - 새로 고침 시도 취소 : org.springframework.beans.factory.BeanCreationException : 클래스 경로 리소스에 정의 된 'entityManagerFactoryMySql'이라는 이름의 bean 작성 오류 [config/spring /database.xml] : – Maria

관련 문제