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

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

CDI - Bean 名稱不明確

CDI - Bean 名稱不明確

忽然笑 2021-10-27 16:26:14
我定義了兩個 Bean:@Named("mysql")public MySqlLogService extends AbstractLogService { ... }@Named("mysql")public MySqlConcurrencyService implements ConcurrencyService { ... }我認(rèn)為Named限定符在某種程度上與 Bean 的類型有關(guān),但是 Weld 返回:Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001414: Bean name is ambiguous. Name mysql resolves to beans:   - Managed Bean [class my.package.MySqlConcurrencyService] with qualifiers [@Default @Named @Any],  - Managed Bean [class my.other.package.MySqlLogService] with qualifiers [@Default @Named @Any]為什么?預(yù)選賽的范圍是什么?
查看完整描述

2 回答

?
繁華開滿天機

TA貢獻(xiàn)1816條經(jīng)驗 獲得超4個贊

似乎您混淆了 CDI 注釋。該@Named("my_custom_name")注釋用于指代班/ IMPL明確,如:


@Inject

@Named("my_custom_name")

ConcurrencyService service;

如果您沒有在@Namedthen 中定義自定義名稱,則默認(rèn)情況下它會選擇 class name ,因此您不會遇到該錯誤。在你的例子中:


@Named

MySqlLogService

將被稱為mySqlLogService和


@Named

MySqlConcurrencyService

將被稱為mySqlConcurrencyService,但我仍然不明白你想要實現(xiàn)的目標(biāo)。


范圍不是用 定義的@Named,而是使用:


@RequestScoped

@SessionScoped

@ApplicationScoped

@ConversationScoped

更多信息here和here是2個例子i ii


對于范圍檢查 oracle 的頁面


也是一個很好的博客,解釋了預(yù)選賽


查看完整回答
反對 回復(fù) 2021-10-27
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊

@Named無論類型如何,兩個啟用的 bean都不能具有相同的 bean 名稱(via )。

既然是CDI,那我們看看CDI規(guī)范怎么樣?讓我們從2.6開始。Bean names,它指出:

...在非類型安全環(huán)境(如統(tǒng)一表達(dá)式語言)中使用時,可以通過名稱引用具有名稱的 bean。...

因此,您可以在不引用其類型的情況下使用該 bean。因此需要能夠?qū)?bean 名稱解析為一個特定的 bean。例如,當(dāng)您從 JSF 頁面使用 EL 時。

再往前一點,它寫道:

根據(jù)Ambiguous names 中定義的限制,多個 bean 可以共享相同的 bean name。

這允許您實際上“破壞”名稱的唯一性,只要您可以保證在類型安全解析結(jié)束時,只會找到一個具有該給定名稱的 bean。

確保您的 bean 具有唯一的名稱并且它會起作用。如果它只是您所追求的限定符,那么使用@Named會帶來您可能不需要的開銷。只需創(chuàng)建自己的限定符并從那里開始。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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