Multi Session 연결시 TransactionSynchronizationManager 사용하기

1.각각 다른 datasource를 생성한다.
2.Spring Config에서
@EnableTransactionManagement 또는 @EnableAspectJAutoProxy를 사용.
@EnableAspectJAutoProxy 일 경우 transactionManager라는 transaction manager가 설정되어야 한다.
3.TransactionSynchronizationManager 를 사용한다.

설정 : SpringAppConfig.java

@Configuration
@ImportResource({“classpath:/config/spring/.xml”})
@EnableTransactionManagement
public class SpringAppConfig {
}

사용 : WizDao.java

@Repository
 public class WizDao {
  @Autowired
  @Qualifier("masterSqlSession")
  private SqlSession masterSqlSession;

  @Autowired
  @Qualifier("slaveSqlSession")
  private SqlSession slaveSqlSession;
  ...
  private SqlSession getSession() {
    boolean txReadOnly = 
    TransactionSynchronizationManager.isCurrentTransactionReadOnly();
 
    if(txReadOnly) {
      return slaveSqlSession;
    } else {
      returnmasterSqlSession;
    }
  }
}

카테고리미분류

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다