- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
环境:Java EE 6
如何在Interceptor中判断调用的bean是容器管理的(CMT)还是bean管理的(BMT)?
最佳答案
根据定义,Bean 始终由容器管理。
您可能想知道当前事务是 CMT 还是 BMT。因为@AroundInvoke拦截器方法与拦截的业务方法在同一事务中执行,您可以通过以下方式检查事务类型:
public class SomeInterceptor {
@Resource
private javax.ejb.SessionContext sessionContext;
@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception {
if (isCMT()) {
}
...
}
private boolean isCMT() {
try {
//throws IllegalStateException if not BMT
sessionContext.getUserTransaction();
return false;
}
catch (IllegalStateException ise) {
return true;
}
}
}
当然,使用异常来控制流程是不好的,但我不知道区分 BMT 和 CMT 的替代方法。
关于java - 确定 BMT 或 CMT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949357/
我正在开发一个遗留应用程序。我们将其从 JDBC 迁移到带有声明性事务的 Spring 3.2 + Hibernate 4.1.12 + JTA 2。我看到容器管理事务 (CMT) 正在按预期进行事务
环境:Java EE 6 如何在Interceptor中判断调用的bean是容器管理的(CMT)还是bean管理的(BMT)? 最佳答案 根据定义,Bean 始终由容器管理。 您可能想知道当前事务是
出于好奇,是否可以从 Web 容器直接控制 EJB 事务? 为了说明这一点,我制作了这个简单的示例,在 Web 容器中启动 UserTransaction(使用 Servlet),但事务未绑定(bin
如何管理 CMT 和 BMT? 根据我的理解,容器管理事务是通过 JTA 实现的,它由应用程序服务器支持,而不是像 tomcat 这样的网络服务器。 CMT 由事务管理器实现处理,它特定于每个应用程序
该主题的各种部分描述使我怀疑 BMT 与应用程序管理的 EntityManager(以及 UserTransaction 的使用)密切相关,而 CMT 与容器管理的 EntityManager 密切相
我当前在刷新 PersistenceContext 中的数据时遇到问题。我有一个 CMT EJB3 bean,它调用 BMT EJB3 bean。在 BMT bean 中,我对对象执行一些处理逻辑。我
我们有一个简单的无状态 EJB 计时器,它可以将 spring 服务的实例注入(inject)其中。 spring 服务有一个标记为事务性的方法。当 EJB 使用事务管理类型 CONTAINER 时,
我是一名优秀的程序员,十分优秀!