Spring 3.0 여러 사무 관리 자 를 설정 하 는 방법

Spring 3.0 여러 개의 사무 관리 자 를 설정 하 는 방법
대부분의 항목 은 하나의 사무 관리자 만 필요 합 니 다.그러나 일부 항목 은 효율 을 높이 거나 전혀 다 르 고 상 관 없 는 데이터 소스 가 여러 개 있 기 위해 서 는 여러 개의 사무 관리 자 를 사용 하 는 것 이 좋다.슬기 로 운 Spring 의 Transactional 관 리 는 이 점 을 고려 하여 먼저 여러 개의 transactional manager 를 정의 하고 qualifier 속성 에 서로 다른 값 을 지정 합 니 다.그리고@Transactional 주 해 를 사용 해 야 할 때 TransactionManager 의 qualifier 속성 값 을 지정 하거나 bean 이름 을 직접 사용 합 니 다.설정 과 코드 사용 예:

<tx:annotation-driven/>

<bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="datasource1"></property>
  <qualifier value="datasource1Tx"/>
</bean>

<bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="datasource2"></property>
  <qualifier value="datasource2Tx"/>
</bean>

사용 시@Transactional("datasource1Tx")과@Transactional("datasource2tx")을 사용 하여 특정한 사무 관리 자 를 구체 적 으로 사용 하 는 것 을 구별 합 니 다.

public class TransactionalService {

  @Transactional("datasource1Tx")
  public void setSomethingInDatasource1() { ... }

  @Transactional("datasource2Tx")
  public void doSomethingInDatasource2() { ... }
}


또는 transactin manager 의 bean 이름 을 직접 사용 합 니 다:
@Transactional("transactionManager1")
@Transactional()을 사용 하면 결 성 된 transaction mananger 이름,즉@Transactional("transactionManager")을 사용 하 는 것 과 같 습 니 다. 
참고:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#tx-multiple-tx-mgrs-with-attransactional
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기