第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

EJB bean 生命周期依賴關(guān)系?

EJB bean 生命周期依賴關(guān)系?

慕田峪9158850 2021-12-10 15:06:50
我在規(guī)范中找不到任何關(guān)于 @EJB 或 @Inject 的依賴注入如何與容器的 bean 生命周期管理交互的明確說明。我想將單例 bean A 注入單例 bean B。我希望容器保證在 B 的 @PostConstruct 方法被調(diào)用時 A 存在,并且一直存在直到 B 的 @PreDestroy 方法完成之后。@Inject(CDI 注入)會做到這一點嗎?@EJB 怎么樣?還是我總是需要添加@DependsOn?
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

CDI 和 EJB 是兩種不同的規(guī)范。CDI 提供了集成,允許您像使用 CDI 一樣使用 EJB bean(但反之亦然?。?。所以請注意您是在談論 CDI 還是 EJB,因為并非所有注釋都適用于所有 bean。例如@Singleton(EJB) 可以有@Startup,而@ApplicationScoped來自 CDI 的 bean 不能。

您提到的是“單例豆”。只是為了消除混淆,在 EJB 中這意味著@Singleton,在 CDI 中意味著@ApplicationScopedbean。

話雖如此,對于您提出的問題:

  1. @Inject(CDI 注入)會做到這一點嗎?

@Inject只要您使用它在這些 bean 之間創(chuàng)建非循環(huán)依賴項,它就應該可以正常工作 - 例如,如果您@Inject在一個 bean 的構(gòu)造函數(shù)中使用,CDI 將首先啟動該依賴項,而不是該 bean 嘗試使用。請記住,CDI 正在惰性啟動事物 - 在您實際嘗試使用該 bean 之前什么都不會發(fā)生。

  1. @EJB 怎么樣?

不確定你在這里的意思 -@EJB@InjectCDI 中的 EJB 等價物。

  1. 還是我總是需要添加@DependsOn?

這也是一個選項,但同樣,請注意,這只能用于 EJB @Singletonbean(這很好,這里只是表示 CDI 與 EJB 的區(qū)別)。


查看完整回答
反對 回復 2021-12-10
?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

  1. Inject (CDI) 不是 EJB 規(guī)范的一部分。這可能是供應商特定的行為。對 EJB 使用 EJB 注入。也許 CDI 規(guī)范的這一部分可能會有所幫助:cdi 規(guī)范:與其他規(guī)范的關(guān)系

  2. 和 3. 參見 EJB 規(guī)范 3.2 第 4.8.1 章:單例會話 Bean 初始化。您沒有說明初始化(急切或啟動時),因此請參閱文檔了解詳細信息。

在某些情況下,應用程序中的多個單例會話 bean 組件之間存在顯式的初始化排序依賴關(guān)系。DependsOn 注解用于表達這些依賴關(guān)系。在一個單例會話 bean 必須在一個或多個其他單例會話 bean 之前初始化的情況下,使用 DependsOn 依賴項。容器確保在調(diào)用 PostConstruct 方法之前已初始化與單例會話 bean 具有 DependsOn 關(guān)系的所有單例會話 bean。

請注意,如果一個單例會話 bean 只需要從其 PostConstruct 方法調(diào)用另一個單例會話 bean,則不需要顯式排序元數(shù)據(jù)。在這種情況下,第一個單例會話 bean 將僅使用 EJB 引用來調(diào)用目標單例會話 bean。在這種情況下,獲取 EJB 引用(通過注入或查找)并不一定意味著實際創(chuàng)建了相應的單例會話 bean 實例。


查看完整回答
反對 回復 2021-12-10
  • 2 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號