我正在分析可以使用Bean管理事务(BMT)和Bean管理并发(BMC)的可能用例。以下是我在BMT的基础工作的结果,
但是,我还没有找到任何有趣的BMC用例。我只能从Enterprise JavaBeans 3.1(第6版)获得的信息是
“...容器管理的并发性并未涵盖多线程代码必须解决的全部问题。在这些情况下,规范通过提供bean管理的并发模式,提供了Java语言并发工具的全部功能。 “
如果您可以在使用BMT或BMC的特定用例上分享您的经验,那将是非常好的。
答案 0 :(得分:2)
如果要在同一bean方法中多次开始/提交事务,BMT也很有用。如果您想要精确控制beforeCompletion期间抛出的异常,它也很有用;例如,JPA乐观锁定可以在提交期间抛出异常,如果您正在使用BMT,则只能在EJB内处理。
如果您的方法委托给已经处理并发的另一个服务,则BMC很有用。例如,如果您有一个使用ConcurrentHashMap管理数据的单例,那么您不需要容器来执行其他同步。