gpt4 book ai didi

java - 事务期间触发的 CDI 事件的范围

转载 作者:行者123 更新时间:2023-12-01 09:31:33 24 4
gpt4 key购买 nike

来自Weld documentation :

Transactional observers receive their event notifications during the before or after completion phase of the transaction in which the event was raised.

这是否意味着事务期间触发的 CDI 事件的范围仅限于该事务?

我想是的,但我只是想确保在事务完成时不需要进行任何清理。

最佳答案

我认为您稍微误解了这个概念。

不存在“事件范围”这样的东西。交易的故事如下 - 您有一个交易方法,在该方法中,您触发一个事件。在您的应用程序中的某个位置,您有观察者,它们具有观察此事件所需的类型,并且它们也绑定(bind)到特定的事务阶段。

这实际上意味着,当交易达到给定状态时,此类观察者将收到通知 - 不早不晚:

    public void observeAfterCompletion(@Observes(during = AFTER_COMPLETION) Foo someEvent) {
// this will be notified once the transaction reached AFTER_CEMPLETION stage
}

public void observeBeforeCompletion(@Observes(during = BEFORE_COMPLETION) Foo event) {
// this will be notified once the transaction reaches BEFORE_COMPLETION stage
}

有关事务何时达到给定状态的更多信息,您需要检查 JTA 规范,而不是 CDI。

I don't have to do any cleanup when a transaction completed.

不,你不知道。标准事件后您无需清理任何东西,也无需在此处执行此操作。

关于java - 事务期间触发的 CDI 事件的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39365770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com