2014-10-13 4 views
0

tx : annotation-driven가 이미 활성화 된 경우 DefaultAutoProxyCreator가 필요합니까?스프링에서 프록시 생성 프록시

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> 
     <property name="proxyTargetClass" value="true" /> 
</bean> 

<tx:annotation-driven proxy-target-class="true"/> 

둘 다 사용하도록 설정된 경우 프록시 프록시가 생성되기 시작하고 실패하기 시작합니다.

tx-annotation 만 활성화되어 있기 때문에 maven 종속성에서도 spring-aspect 및 cglib를 비활성화했습니다. 위와 같은 클래스 기반 프록시의 경우에도 스프링 4에서도 cglib가 필요합니까?

봄 버전 : 당신은 당신이 교차 절단 목적을 위해 사용하는 특정 Advisors를 4.0.6

답변

1

지금까지 내가 이해, 당신이 정말로 필요하지 않습니다 명시 적 DefaultAdvisorAutoProxyCreator을하지 않는 한 - 그렇다면 나는 느낌 @ AspectJ 접근법은 더 깨끗할 수있다.

또한 cglib를 명시 적으로 비활성화해도 아무런 효과가 없으며 Spring에는 자체 CGLIB 사본이 패키지로 제공됩니다.

+0

저는 실제로 Around 조언을 가지고 있습니다. 대신에 @AspectJ를 사용하도록 제안하고 있습니다. 스프링면을 추가해야하거나 기본 인터페이스 기반 프록시가 tx 주석에 의해 활성화 된 것처럼 작동합니까? – fortm

+0

를 사용하여 가 다시 충돌하지 않게 할 수 있습니까? – fortm

+0

아니요, 그렇지 않습니다. ''는 @Aspectj 주석이있는 빈을 기반으로하는 프록시 만 만들고 프록시는 트랜잭션을 프록시하지 않습니다. –