@Autowired
當Spring發現@Autowired注解時,將自動在代碼上下文中找到和其匹配(默認是類型匹配)的Bean,并自動注入到相應的地方去。
必須確保該類型在IOC容器中只有一個對象;否則報錯。
@Resource
1、@Resource后面沒有任何內容,默認通過name屬性去匹配bean,找不到再按type去匹配
2、指定了name或者type則根據指定的類型去匹配bean
3、指定了name和type則根據指定的name和type去匹配bean,任何一個不匹配都將報錯
區別
1、@Autowired默認按照byType方式進行bean匹配,@Resource默認按照byName方式進行bean匹配
2、@Autowired是Spring的注解,@Resource是J2EE的注解,這個看一下導入注解的時候這兩個注解的包名就一清二楚了
Spring屬于第三方的,J2EE是Java自己的東西,因此,建議使用@Resource注解,以減少代碼和Spring之間的耦合。