spring配置的主要標簽有哪些
⑴ Spring註解之@Autowired、@Qualifier、@Resource、@Value
前言
在Spring框架中,@Autowired、@Qualifier、@Resource、@Value四個註解常用於數據注入,類似於在xml配置文件中使用bean標簽中的property標簽。
1、場景介紹
在使用@Autowired註解之前,我們先來看一個場景:在層、service層和controller層中,若沒有正確注入AccountDao類,運行時會出現空指針異常。這是由於service層中的AccountDao屬性未注入導致的。接下來,我們將使用@Autowired註解來解決這一問題。
2、@Autowired註解
Spring 2.5版本引入了@Autowired註解,用於自動裝配類成員變數、方法、構造函數和參數。它主要應用於變數和方法,可以消除set和get方法,方便快捷。@Autowired註解的作用與在xml配置文件中的bean標簽中使用property標簽相同。
在Spring的IOC容器中,@Autowired註解會直接在容器中查找匹配的屬性,與key無關。@Autowired自動裝配的三種情況包括:1)容器中存在唯一匹配類型的bean對象;2)容器中不存在匹配類型的bean對象;3)容器中存在多個匹配類型的bean對象,則根據變數名進行注入。
3、@Qualifier註解
當容器中存在多個匹配類型的bean對象時,可以通過@Qualifier註解指定具體名稱進行注入。@Qualifier註解通常與@Autowired一起使用,指明具體名稱的自動裝配。
4、@Resource註解
@Resource註解由J2EE提供,默認按照byName自動注入。它有兩個重要屬性:name和type,其中type屬性通常不使用,因為它不如@Autowired靈活。@Resource註解主要用於通過名稱自動注入。
5、@Autowired與@Resource的區別
這兩個註解非常相似,主要區別在於提供者和自動裝配方式。@Autowired由Spring提供,而@Resource由J2EE提供。@Resource相當於@Autowired + @Qualifier。
6、@Value註解
@Value註解用於注入基本類型和String類型的數據。它有一個value屬性,用於指定數據值,支持Spring的SpEL表達式。
7、小結
以上四個註解都用於注入數據,其作用類似於在xml配置文件中使用bean標簽中的property標簽。