我“继承”了一个旧的 Spring 应用程序。目前它使用的是 Spring 2.5(只升级了一次),并希望进一步升级到 Spring 3。
我了解大部分应用程序配置。只有一个部分我“不是 100%”。我可以大致猜测它可能意味着什么,但我需要绝对确定,因此发布这个问题:
这是配置片段(取决于此处未显示的注释驱动事务管理器):
<aop:config>
<aop:advisor pointcut="execution(* *..ProductManager.*(..))"
advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="save*" />
<tx:method name="*" read-only="false" />
</tx:attributes>
</tx:advice>
我的具体两个问题是:
- “执行(* ..ProductManager.(..))”是什么意思(我理解切入点的说法)
- 在建议的属性部分,我们说将事务应用于所有与保存*相关的方法,并且对于所有内容,只读都是错误的。谁能解释为什么该设置有意义?对于所有具有事务支持的方法(即仅保存 * 方法),它是否是附加且有效的说法,我也希望这些方法不是只读事务。或者它是否对包容性事务过滤器(在切入点中定义)的每种方法应用了不同的东西(即某种形式的事务支持)。
感谢您的任何澄清。拜托,没有一般的答案-我需要对此进行具体解释。