저는 각 서비스가 4 개의 개별 데이터 소스를 참조하는 프로젝트를 진행하고 있습니다. 지금까지 우리는 다오 대상 및 트랜잭션 Intereceptor를 참조하기위한 ProxyFactoryBean 사용하고있다 - 이런 일을 ...여러 데이터 소스로 세션을 관리하는 데 문제가 있습니다.
<bean id="readOnlyUserProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="readOnlyDao"/>
<property name="interceptorNames">
<list>
<value>readOnlyTransactionInterceptor</value>
</list>
</property>
</bean>
다른 DAO를위한 3 다른 유사한 프록시가 있습니다. 이 모든 것은 서로 다른 트랜잭션 인터셉터를 말하며 서로 다른 트랜잭션 관리자에 연결됩니다. 간단히 말해 각 서비스는 각각 4 개의 다른 데이터 소스에 연결하는 별도의 트랜잭션 관리자를 나타내는 별도의 트랜잭션 인터셉터를 나타내는 4 개의 DAO 프록시에 연결됩니다. 모든 작업은 lazy = "false"로 지금까지 작동합니다.
이제 성능을 최적화하기 위해 '지연 로딩'을 활성화하고 최대 절전 모드 세션을 처리기 계층에 전달하려고합니다. 우리는 OpenSessionInView 접근법을 사용하지 않기 때문에 'TransactionProxyFactoryBean'을 사용하는 것이 가장 좋은 방법이라고 생각합니다.
우리는 몇 가지 접근법을 시도했지만 각 서비스를 통해 4 개의 개별 데이터 소스에 연결하고 이제는 4 개의 개별 트랜잭션 관리자를 'TransactionProxyFactoryBean'에 연결할 수 있으므로 막혔습니다. 따라서 처리기/서비스 계층의 다른 데이터 소스에서 트랜잭션을 관리하는 방법을 찾을 수 없습니다.
방금이 작업을 시작했고 Spring 트랜잭션 관리에 대한 많은 경험이 없습니다. 가능한 모든 접근법에 대해 친절하게 안내하겠습니다.