我希望你能通过Java编程以XML为基础设置以下事务性AOP:
到目前为止,我有以下内容。我可以像这样创建表达式切入点:
也许我可以使用
你可能会问我为什么要这么做?
嗯,我已经将我的 Spring 配置从 XML 转移到了 @Configuration 类中,但我无法翻译 tx 命名空间的内容。虽然我正在使用
<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>
到目前为止,我有以下内容。我可以像这样创建表达式切入点:
到目前为止,我的进展如下。我可以像这样创建表达式切入点:
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
pointcut.setExpression("execution(* *..service.*Manager.*(..))");
也许我可以使用
AspectJPointcutAdvisor
和 AspectJAroundAdvice
的组合来设置实际的建议。但是,当查看支持 tx
命名空间的 Spring 代码时,似乎创建了一个 TransactionInterceptor
。也许我完全看错了。你可能会问我为什么要这么做?
嗯,我已经将我的 Spring 配置从 XML 转移到了 @Configuration 类中,但我无法翻译 tx 命名空间的内容。虽然我正在使用
@EnableTransactionManagement
和 @Transactional
注释,但在所有与上述切入点表达式匹配的方法中添加注释太冒险了。我很可能会漏掉某些东西。