日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基本注射/资格赛,范围

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基本注射/资格赛,范围 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是上周解決的DI / CDI基礎知識的延續-在本文中,我將討論基礎注入,限定詞和范圍。

在上一個主題中,我們提供了有關DI / CDI概念的大量信息,我們還討論了如何使用注釋加載這些bean或類-這構成了對象的組成并創建了關于如何進行采樣的示例。以編程方式聲明它們。 在本文中,我們將在注入部分進行更多討論,即如何獲取特定資源并將其注入另一資源以供使用。

那么如何首先注入一個豆子呢?

基本注射

您如何注入豆?

  • 使用@Inject <Java-Type> <variable>進行字段注入
  • <Java-Type>可以是Java類或Java接口
public class MyGreeter {// Inject Greeting object for field injection@Inject Greeting greeting;public sayGreeting(String name){// You can then used the injected Greeting objectSystem.out.println(greeting.greet(name)); } }

哪里可以注入豆子?

可以在“注入點”注入豆

  • 領域
  • 方法參數

方法可以是:

  • 構造函數(對創建的不可變對象有用)>初始化程序
  • 設置方法
  • 制片人
  • 觀察者
public class MyGreeter {private Greeting greeting;// Use constructor method injection@Injectpublic MyGreeter(Greeting greeting) {this.greeting = greeting; }public sayGreeting(String name){System.out.println(greeting.greet(name)); } }

資格賽

如果存在多種實現類型(接口和子類),則限定符用于分配特定的bean。 假設您有兩個特定接口的候選對象(實現類):

  • 界面是人
  • 第1類是普通人
  • 第2類是非正規人士

我們可以通過引入/創建自己的Qualifier批注來使用Qualifiers明確指定類的實現:

RegularPerson Qualifier批注:

NonRegularPerson限定符注釋:

現在,我們需要創建一個實現類并將其標記到我們創建的Qualifier中。

RegularPersonImpl:

NonRegularPersonImpl:

注意:可以有盡可能多的限定符–請記住,限定符是用于將邏輯對象實現與其公共接口分開的。

現在已經設置了實現,我們現在可以注入類并使用其限定符。

在此示例中,您可以清楚地看到用法,通過引入Qualifier,開發人員可以通過注釋明確指定實現類型。

在此處下載示例。

您可以利用預選賽做其他事情嗎?

我將不進一步討論限定詞的其他用途,相反,我將讓您檢查以下示例,以嘗試并探索:

  • 多個預選賽
  • 帶有屬性的限定詞
  • 具有多個屬性的限定符

范圍

為什么首先需要在對象上作用域? –對于Web應用程序,我們需要我們的bean在用戶與應用程序交互的持續時間內保持狀態,例如,跨多個對服務器的請求。

開發人員可以分配給對象的作用域有5種類型:

  • @Dependent(默認)
    • 默認范圍(如果未指定);
  • @RequestScoped
    • 在單個HTTP請求中用戶與Web應用程序交互期間,將維護對象的狀態。
  • @SessionScoped
    • 在多個HTTP請求之間用戶與Web應用程序進行交互期間,將維護對象的狀態。
  • @ApplicationScoped
    • 所有用戶與Web應用程序交互中的共享狀態。
  • @ConversationScoped
    • 會話上下文由應用程序明確劃分

我不會在這里詳細介紹,但是我將為您提供可以運行的實際示例。 在此處下載項目。

  • 依附
  • 請求
  • 屆會
  • 應用
  • 會話

下一站:DI / CDI –前進

使用此新功能,您可以清楚地觀察和想象通過簡化許多設置Web應用程序的過程來提高開發人員的生產率–可以創建限定符以明確區分具有共同目標(按接口)的邏輯/業務Bean,進行范圍界定讓開發人員控制流程并管理對象的狀態–通過UI直接通過EL調用bean的簡化使其更簡單。

請檢查示例并自行嘗試,最好檢查一個實際示例,而不是只閱讀詳細信息和概念。 請享用!

參考: 基本注射/資格賽,我們的JCG合作伙伴 Alvin Reyes在Alvin“ Jay” Reyes博客博客上的范圍。

翻譯自: https://www.javacodegeeks.com/2013/08/basic-injection-qualifiers-scope.html

總結

以上是生活随笔為你收集整理的基本注射/资格赛,范围的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。