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

idea中@Autowired注解下變量報(bào)紅的解決

 更新時(shí)間:2021年11月08日 08:43:03   作者:dxj1016  
這篇文章主要介紹了idea中@Autowired注解下變量報(bào)紅的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

idea中@Autowired注解下變量報(bào)紅

問題

idea中@Autowired注解下變量報(bào)紅

在這里插入圖片描述

這個(gè)不是錯(cuò)誤,只是一個(gè)警告而已,其實(shí)不解決也是可以啟動(dòng)項(xiàng)目的

解決方法

1、修改設(shè)置

file–>settings–>Inspections–>spring Core–>Code–>Autowiring for Bean Class

在這里插入圖片描述

2、修改注解@Autowired為注解@Resource

在這里插入圖片描述

3、注解@Autowired的屬性required = false

在這里插入圖片描述

4、對(duì)應(yīng)的dao層代碼添加注解@Repository(“UserDao”)

在這里插入圖片描述

注解@Autowired--警告(親測可用)

@Autowired
UserDao userDao;

警告內(nèi)容是

Field injection is not recommended

意思就是使用變量依賴注入的方式是不被推薦的。

使用idea解決策略是這樣的:

Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies

意思就是總是使用構(gòu)造器的方式強(qiáng)制注入。

依賴注入有三種方式:

  • 變量(filed)注入
  • 構(gòu)造器注入
  • set方法注入

先各自看一下實(shí)現(xiàn)方式

變量(filed)注入

@Autowired
UserDao userDao;

構(gòu)造器注入

final
UserDao userDao;
@Autowired
public UserServiceImpl(UserDao userDao) {
    this.userDao = userDao;
}

set方法注入

private UserDao userDao;
@Autowired
public void setUserDao (UserDao userDao) {
    this.userDao = userDao;
}

(我遇到該錯(cuò)誤使用了第三種方法)

相比較而言:

優(yōu)點(diǎn):變量方式注入非常簡潔,沒有任何多余代碼,非常有效的提高了java的簡潔性。即使再多幾個(gè)依賴一樣能解決掉這個(gè)問題。

缺點(diǎn):不能有效的指明依賴。相信很多人都遇見過一個(gè)bug,依賴注入的對(duì)象為null,在啟動(dòng)依賴容器時(shí)遇到這個(gè)問題都是配置的依賴注入少了一個(gè)注解什么的,然而這種方式就過于依賴注入容器了,當(dāng)沒有啟動(dòng)整個(gè)依賴容器時(shí),這個(gè)類就不能運(yùn)轉(zhuǎn),在反射時(shí)無法提供這個(gè)類需要的依賴。

在使用set方式時(shí),這是一種選擇注入,可有可無,即使沒有注入這個(gè)依賴,那么也不會(huì)影響整個(gè)類的運(yùn)行。

在使用構(gòu)造器方式時(shí)已經(jīng)顯式注明必須強(qiáng)制注入。通過強(qiáng)制指明依賴注入來保證這個(gè)類的運(yùn)行。

另一個(gè)方面:

依賴注入的核心思想之一就是被容器管理的類不應(yīng)該依賴被容器管理的依賴,換成白話來說就是如果這個(gè)類使用了依賴注入的類,那么這個(gè)類擺脫了這幾個(gè)依賴必須也能正常運(yùn)行。然而使用變量注入的方式是不能保證這點(diǎn)的。

既然使用了依賴注入方式,那么就表明這個(gè)類不再對(duì)這些依賴負(fù)責(zé),這些都由容器管理,那么如何清楚的知道這個(gè)類需要哪些依賴呢?它就要使用set方法方式注入或者構(gòu)造器注入。

小結(jié)下

變量方式注入應(yīng)該盡量避免,使用set方式注入或者構(gòu)造器注入,這兩種方式的選擇就要看這個(gè)類是強(qiáng)制依賴的話就用構(gòu)造器方式,選擇依賴的話就用set方法注入。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家.

相關(guān)文章

最新評(píng)論

平谷区| 吉林省| 大安市| 五华县| 西和县| 桓台县| 隆回县| 武汉市| 湾仔区| 乐至县| 休宁县| 扬州市| 霸州市| 永和县| 兴文县| 修水县| 磐石市| 大足县| 平阴县| 德州市| 库伦旗| 百色市| 天镇县| 靖西县| 布尔津县| 息烽县| 鸡西市| 皮山县| 江津市| 沁水县| 城口县| 东光县| 犍为县| 巴林右旗| 道真| 会泽县| 建平县| 珠海市| 武安市| 逊克县| 当阳市|