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