更新時間:2024-01-23 來源:黑馬程序員 瀏覽量:
在Spring中,盡管使用XML配置文件可以實現(xiàn)Bean的裝配工作,但如果應用中Bean的數(shù)量較多,會導致XML配置文件過于臃腫,從而給維護和升級帶來一定的困難。
Java從JDK5.0以后,提供了Annotation(注解)功能,Spring也提供了對Annotation技術的全面支持。Spring3中定義了一系列的Annotation(注解),常用的注解如下。
1.@Component:可以使用此注解描述Spring中的Bean,但它是一個泛華概念,僅僅表示一個組件(Bean),并且可以作用在任何層次。使用時只需將該注解標注在相應類上即可。
2.@Repository:用于將數(shù)據訪問層(DAO層)的類標識為Spring中的Bean,其功能與@Component相同。
3.@Service:通常作用在業(yè)務層(Service層),用于將業(yè)務層的類標識為Spring中的Bean,其功能與@Component相同。
4.@Controller:通常作用在控制層(如Struts2的Action),用于將控制層的類標識為Spring中的Bean,其功能與@Component相同。
5.@Autowired:用于對Bean的屬性變量、屬性的Set方法及構造函數(shù)進行標注,配合對應的注解處理器完成Bean的自動配置工作。默認按照Bean的類型進行裝配。
6.@Resource:其作用與Autowired一樣。其區(qū)別在于@Autowired默認按照Bean類型進行裝配,而@Resource默認按照Bean實例名稱進行裝配。@Resource中有兩個重要屬性:name和type。Spring將name屬性解析為Bean實例名稱,type屬性解析為Bean實例類型。如果指定name屬性,則按實例名稱進行裝配;如果指定type屬性,則按Bean類型進行裝配;如果都不指定,則先按Bean實例名稱裝配,如果不能匹配,則再按照Bean類型進行裝配;如果都無法匹配,則拋出NoSuchBeanDefinitionException異常。
7.@Qualifier:與@Autowired注解配合使用,會默認的按Bean類型裝配修改為按Bean的實例名稱裝配,Bean的實例名稱由@Qualifier注解的參數(shù)指定。
在上面幾個注解中,雖然@Repository、@Service和@Controller功能與@Component注解的功能相同,但是為了更加清楚地表示出標注類的用途,建議使用@Repository、@Service與@Controller分別對實現(xiàn)類進行標注。
本文版權歸黑馬程序員Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓學院
首發(fā):https://java.itheima.com