欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

idea中@Autowired注解下變量報紅的解決

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

idea中@Autowired注解下變量報紅

問題

idea中@Autowired注解下變量報紅

在這里插入圖片描述

這個不是錯誤,只是一個警告而已,其實不解決也是可以啟動項目的

解決方法

1、修改設(shè)置

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

4、對應(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)造器的方式強制注入。

依賴注入有三種方式:

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

先各自看一下實現(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;
}

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

相比較而言:

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

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

在使用set方式時,這是一種選擇注入,可有可無,即使沒有注入這個依賴,那么也不會影響整個類的運行。

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

另一個方面:

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

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

小結(jié)下

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

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

相關(guān)文章

  • idea 查看一個類的所有子類以及子類的子類并以層級關(guān)系顯示

    idea 查看一個類的所有子類以及子類的子類并以層級關(guān)系顯示

    這篇文章主要介紹了idea 查看一個類的所有子類以及子類的子類并以層級關(guān)系顯示,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • SpringBoot 如何實現(xiàn)Session共享

    SpringBoot 如何實現(xiàn)Session共享

    這篇文章主要介紹了SpringBoot 如何實現(xiàn)Session共享,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-09-09
  • Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題

    Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題

    這篇文章主要介紹了Springboot通過配置WebMvcConfig處理Cors非同源訪問跨域問題,關(guān)于Cors跨域的問題,前端有代理和jsonp的常用方式解決這種非同源的訪問拒絕策略
    2023-04-04
  • SpringBoot項目后端開發(fā)邏輯全面梳理

    SpringBoot項目后端開發(fā)邏輯全面梳理

    這篇文章主要介紹了SpringBoot項目后端開發(fā)邏輯全面梳理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java中的connection reset 異常處理分析

    java中的connection reset 異常處理分析

    本文主要介紹了java中的connection reset 異常處理分析的相關(guān)資料,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Java使用TCP實現(xiàn)在線聊天的示例代碼

    Java使用TCP實現(xiàn)在線聊天的示例代碼

    這篇文章主要介紹了Java使用TCP實現(xiàn)在線聊天的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • springboot遠程執(zhí)行服務(wù)器指令

    springboot遠程執(zhí)行服務(wù)器指令

    這篇文章主要介紹了springboot遠程執(zhí)行服務(wù)器指令,本例是java遠程連接到服務(wù)器,去抓取查詢kubesphere中的etcd日志,并返回,需要的朋友可以參考下
    2023-09-09
  • java中的switch case語句使用詳解

    java中的switch case語句使用詳解

    這篇文章主要介紹了java中的switch case語句使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java實現(xiàn)截圖小工具的完整代碼

    Java實現(xiàn)截圖小工具的完整代碼

    這篇文章主要介紹了Java實現(xiàn)截圖小工具的完整代碼,用Java的圖形用戶界面GUI技術(shù)寫了一個電腦截圖小工具,本程序代碼簡單,涉及到異常處理,事件處理,圖形用戶界面等,需要的朋友可以參考下
    2022-05-05
  • 手寫redis@Cacheable注解?支持過期時間設(shè)置方式

    手寫redis@Cacheable注解?支持過期時間設(shè)置方式

    這篇文章主要介紹了手寫redis@Cacheable注解?支持過期時間設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論