是否有像@PostConstruct
这样的CDI回调,但是在该类投入使用后会调用?
我有UserDAO
注入EntityManager
和注入UserBean
的EJB UserDAO
,这是远程调用的。
调用UserBean.save(u)
时,它在事务EJB范围内执行。但注入EntityManager
的{{1}}与注入时间的交易无关。
如果我在UserDAO
中声明一个init方法并用UserDAO
注释,那么由于{{1}调用EJB方法时@PostContruct
不相同自然。
这一切都是正确的,因为TransactionSynchronizationRegistry
回调定义为"初始化托管bean指定CDI框架在依赖注入之后但在放入类之前应调用的生命周期回调方法投入使用。"
但是,如果我在方法@PostConstruct
中使用@PostConstruct
,则该事务与TransactionSynchronizationRegistry
相同。
那么,是否存在一个回调方法/注释,我可以在>>将UserDAO.update(u)
中,因此我可以在UserBean
的任何方法调用之前使用UserDAO
。
修改
调用我的TransactionSynchronizationRegistry
方法时会创建JTA事务。但是在UserDAO
userBean.save(u)
时,我能够注入@PostContruct
的有效实例,但它是状态为UserDAO
的另一个事务,另一个是事务ID (与TransactionSynchronizationRegistry
的交易不同)。但我想使用STATUS_NO_TRANSACTION
userBean.save(u)
方法userDAO.save(u)
方法中调用@PostConstruct
方法的相同事务的一些信息。
PS:英语不是我的主要语言。如果我不够清楚,我很抱歉。