文章介紹:在前面,我們使用在applicationContext.xml文件中寫<bean>標籤的方式完成Bean對象的管理,並在<bean>標籤下通過<property>等標籤完成屬性注入,還有init-method、estroy-metho等屬性爲一個Bean類配置初始化方法和構造方法。這一切都是在applicationContext.xml這個配置文件下完成的。這篇文章將介紹另一個方式(註解方式)完成這些操作,並最後比較二者的優缺點,說明實際應用場景
1、Bean管理
Spring提供一個名爲組件的註解:@Component ,它作用在類上。我們只需在applicationContext.xml文件的<beans>標籤下加入 <context:component-scan base-package="ioc" />開啓組件掃描,就可以掃描出所有配置了@Component註解的類進行bean管理。
再後來,Spring覺得一個@Component不能體現分層,於是在它的基礎上衍生了另外三個註解:
@Controller :WEB層
@Service :業務層
@Repository :持久層
2、依賴注入管理
注意:在使用註解注入的方式時,可以不用提供set方法,即直接在變量上加註解(但是如果有set方法就一定要將註解加在set方法上)
(1)普通屬性注入——@Value
(2)對象屬性注入
①使用@Autowired :默認按類型進行裝配
如果想要按照名字(即<bean>標籤的id)進行查找,我們就得用另一標籤——@Qualifier強制使用名稱注入
②使用@Resource(推薦使用)
相當於@Autowired和@Qualifier一起用
3、其他註解
(1)@Scope:
* singleton:單例
* prototype:多例
(2)
@PostConstruct:相當於init-method
@PreDestroy:相當於destroy-method
4、XML和註解開發的比較
* XML :結構清晰
* 註解 :開發方便
註解不能使用的場景:當使用的Bean來自第三方時,無法使用註解(因爲已經無法在封裝好的代碼中進行修改,就無法使用@Resource等註解,只能用XML文件進行管理)
注:在實際開發中還有一種XML和註解整合開發的方式:即Bean由XML配置,使用的屬性使用註解注入。
最後,對今天的內容以一張圖來總結: