最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

 更新時(shí)間:2023年12月26日 15:08:34   作者:AK@  
@Resource 注解和 @Autowired 注解都是在 Spring Framework 中進(jìn)行依賴注入的注解,那么你知道他們有什么區(qū)別嗎,本文就來(lái)介紹一下

一、@Resource與@Autowired的區(qū)別

@Resource 注解和 @Autowired 注解都是在 Spring Framework 中進(jìn)行依賴注入的注解,但它們之間有一些區(qū)別:

1. 來(lái)源不同:

@Resource 注解是由 Java EE 提供的注解,它定義在 javax.annotation.Resource 包下。
@Autowired 注解是由 Spring 提供的注解,它定義在 org.springframework.beans.factory.annotation.Autowired 包下。

2. 依賴注入策略不同:

@Resource 注解默認(rèn)按照名稱進(jìn)行依賴注入,如果有多個(gè)具有相同類型的依賴,可以使用 name 屬性指定依賴的名稱。
@Autowired 注解默認(rèn)按照類型進(jìn)行依賴注入,如果有多個(gè)具有相同類型的依賴,可以使用 @Qualifier 注解或者 @Primary 注解指定依賴的名稱或主要依賴。

3. 兼容性不同:

@Resource 注解屬于 Java EE 標(biāo)準(zhǔn)的注解,在 Java EE 環(huán)境中可以正常使用。
@Autowired 注解是 Spring Framework 提供的特定于 Spring 的注解,它可以在 Spring 環(huán)境下使用。

4. 注解屬性不同:

@Resource 注解可以添加 name 屬性來(lái)指定依賴的名稱,還可以添加 mappedName 屬性來(lái)指定依賴的 JNDI 名稱。
@Autowired 注解可以添加 required 屬性來(lái)指定依賴是否必須,默認(rèn)為 true。
綜上所述,@Resource 注解和 @Autowired 注解在功能上有一些相似之處,但也有一些區(qū)別。如果你在 Java EE 環(huán)境中使用依賴注入,可以選擇使用 @Resource 注解;如果在 Spring Framework 環(huán)境中使用依賴注入,可以選擇使用 @Autowired 注解。需要根據(jù)具體的情況選擇適合的注解進(jìn)行依賴注入。

二、@Resource詳解

@Resource 是 Java EE 的注解之一,它用于進(jìn)行依賴注入。@Resource 注解可以應(yīng)用于字段、方法、參數(shù)或者類上。

在 Spring Framework 中,@Resource 注解是由 Spring 提供的用于進(jìn)行依賴注入的注解之一。當(dāng)我們?cè)陬愔惺褂?@Resource 注解時(shí),Spring 會(huì)自動(dòng)將匹配的依賴注入到目標(biāo)字段或方法中。

@Resource 的使用方式有以下幾種:

注解應(yīng)用在字段上:

@Resource
private SomeDependency someDependency;

注解應(yīng)用在 setter 方法上:

private SomeDependency someDependency;

@Resource
public void setSomeDependency(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在構(gòu)造函數(shù)上:

private SomeDependency someDependency;

@Resource
public MyService(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在方法的參數(shù)上:

private SomeDependency someDependency;

@Resource
public void someMethod(@Resource SomeDependency someDependency) {
    this.someDependency = someDependency;
}

需要注意的是,@Resource 注解默認(rèn)按照名稱進(jìn)行匹配依賴注入。如果有多個(gè)具有相同類型的依賴,可以使用 name 屬性指定依賴的名稱。

@Resource(name = "someDependency2")
private SomeDependency someDependency;

此外,@Resource 注解還可以添加 mappedName 屬性來(lái)指定依賴的 JNDI 名稱。

總結(jié)來(lái)說(shuō),@Resource 注解是用于進(jìn)行依賴注入的注解,它可以應(yīng)用于字段、方法、參數(shù)或者類上。默認(rèn)按照名稱進(jìn)行依賴匹配,也可以通過(guò) name 屬性或者 mappedName 屬性指定依賴的名稱。在 Spring Framework 中,@Resource 注解與 @Autowired 注解類似,但略有區(qū)別。

三、@Autowired詳解

@Autowired 是 Spring Framework 中用于進(jìn)行依賴注入的注解之一。它可以用于自動(dòng)裝配依賴關(guān)系,使得在需要使用某個(gè)依賴時(shí),Spring 可以自動(dòng)將合適的實(shí)例注入到目標(biāo)對(duì)象中。

@Autowired 注解可以應(yīng)用于字段、構(gòu)造函數(shù)、setter 方法和方法的參數(shù)上。

使用 @Autowired 注解時(shí),Spring 會(huì)根據(jù)類型進(jìn)行依賴匹配,它會(huì)嘗試找到與目標(biāo)類型匹配的依賴,并將其注入到目標(biāo)對(duì)象中。如果存在多個(gè)匹配的依賴時(shí),可以使用 @Qualifier 注解來(lái)指定具體注入哪個(gè)實(shí)例。

下面是 @Autowired 注解的幾種用法:

注解應(yīng)用在字段上:

@Autowired
private SomeDependency someDependency;

注解應(yīng)用在構(gòu)造函數(shù)上:

private SomeDependency someDependency;

@Autowired
public MyService(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在 setter 方法上:

private SomeDependency someDependency;

@Autowired
public void setSomeDependency(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在方法的參數(shù)上:

private SomeDependency someDependency;

@Autowired
public void someMethod(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

需要注意的是,默認(rèn)情況下,@Autowired 注解要求依賴必須存在,即依賴對(duì)象不能為空。如果想要指定依賴為非必需,可以設(shè)置 required 屬性為 false。

@Autowired(required = false)
private SomeDependency someDependency;

此外,@Autowired 注解還可以與 @Qualifier 注解一起使用,從而精確指定要注入的依賴實(shí)例。

總結(jié)來(lái)說(shuō),@Autowired 注解是 Spring Framework 中用于進(jìn)行依賴注入的注解,它可以應(yīng)用于字段、構(gòu)造函數(shù)、setter 方法和方法的參數(shù)上。它根據(jù)類型進(jìn)行依賴匹配,默認(rèn)要求依賴必須存在,可以使用 @Qualifier 注解指定具體注入哪個(gè)實(shí)例,也可以設(shè)置 required 屬性為 false 來(lái)聲明依賴為非必需。使用 @Autowired 可以簡(jiǎn)化代碼,減少手動(dòng)注入的工作量。

到此這篇關(guān)于SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別的文章就介紹到這了,更多相關(guān)SpringBoot @Resource與@Autowired內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

屏山县| 扬中市| 靖远县| 游戏| 凤冈县| 丰都县| 朝阳县| 张掖市| 霍州市| 眉山市| 乌拉特后旗| 丹阳市| 会同县| 西峡县| 塘沽区| 江川县| 静乐县| 寿宁县| 化隆| 保亭| 古田县| 安庆市| 黄冈市| 大姚县| 太仓市| 高州市| 西畴县| 锡林浩特市| 潜江市| 越西县| 巴塘县| 循化| 辽宁省| 贵州省| 卢湾区| 沂南县| 邵阳市| 原平市| 襄垣县| 拉孜县| 华安县|