[英]Do Java EE interceptors take part in container managed transactions of an EJB
通常,Java EE文档资源中似乎以某种方式缺少此信息:
除非有活动的外部事务,否则,如果为该业务方法分配了需要事务的事务属性(例如TransactionAttributeType.REQUIRED
),则在使用容器管理的事务调用EJB的业务方法时,容器将启动新事务。
现在,如果此方法调用被方法拦截器拦截
@AroundInvoke
public Object onMethodCall(InvocationContext ctx) throws Exception
{
doSomethingBefore();
ctx.proceed();
doSomethingAfterwards();
}
方法doSomethingBefore()
和doSomethingAfter()
是在此新事务上下文中调用的,还是将事务限制为调用ctx.proceed()
?
从Javadoc中获取@AroundIvoke :
AroundInvoke方法调用与它们所插入的方法在同一事务和安全上下文中发生。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.