나는 설정하기 위해 다음과 같은 XML 기반 트랜잭션 - AOP를 프로그래밍 자바를 통해 싶습니다프로그래밍 방식의 트랜잭션 AOP?
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor id="managerTx" advice-ref="txAdvice" pointcut="execution(* *..service.*Manager.*(..))" order="2"/>
</aop:config>
지금까지 나는 다음 있습니다. 그리고 아마도 내가 실제 조언을 설정할 수 있습니다 AspectJPointcutAdvisor
및 AspectJAroundAdvice
의 조합을 사용하여
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution(* *..service.*Manager.*(..))");
: 나는 이런 식의 포인트 컷을 생성 할 수 있습니다.
그러나 tx
네임 스페이스를 뒷받침하는 스프링 코드를 보면 TransactionInterceptor
이 생성 된 것처럼 보입니다. 어쩌면 나는이 모든 것을 잘못보고있다.
왜 내가 이것을하고 싶은가요?
XML에서 @Configuration 클래스로 스프링 구성을 옮겼습니다. 그러나 tx 네임 스페이스를 변환하는 방법에 대해 고민하고 있습니다. @EnableTransactionManagement
과 @Transactional
주석을 사용하고 있지만 위에 설명 된 pointcut 표현식과 일치하는 모든 메소드에 주석을 추가하는 것은 너무 위험합니다. 나는 뭔가를 그리워 할 의무가있다.