Spring在2.5版本以後開始支持用注解的方式來配置依賴注入。可以用注解的方式來替代XML方式的bean描述,可以將bean描述轉移到組件類的內部,只需要在相關類上、方法上或者字段聲明上使用注解即可。注解注入將會被容器在XML注入之前被處理,所以後者會覆蓋掉前者對於同一個屬性的處理結果。
注解裝配在Spring中是默認關閉的。所以需要在Spring文件中配置一下才能使用基於注解的裝配模式。如果你想要在你的應用程序中使用關於注解的方法的話,請參考如下的配置。
<beans>
<context:annotation-config/>
<!-- bean definitions go here -->
</beans>
在 <context:annotation-config/>標簽配置完成以後,就可以用注解的方式在Spring中向屬性、方法和構造方法中自動裝配變量。
下面是幾種比較重要的注解類型:
1.@Required:該注解應用於設值方法。
2.@Autowired:該注解應用於有值設值方法、非設值方法、構造方法和變量。
3.@Qualifier:該注解和@Autowired注解搭配使用,用於消除特定bean自動裝配的歧義。
4.JSR-250 Annotations:Spring支持基於JSR-250 注解的以下注解,@Resource、@PostConstruct 和 @PreDestroy。
10、請解釋Spring Bean的生命周期?
Spring Bean的生命周期簡單易懂。在一個bean實例被初始化時,需要執行一系列的初始化操作以達到可用的狀態。同樣的,當一個bean不在被調用時需要進行相關的析構操作,並從bean容器中移除。
Spring bean factory 負責管理在spring容器中被創建的bean的生命周期。Bean的生命周期由兩組回調(call back)方法組成。
1.初始化之後調用的回調方法。
2.銷毀之前調用的回調方法。
Spring框架提供了以下四種方式來管理bean的生命周期事件:
InitializingBean和DisposableBean回調接口
針對特殊行為的其他Aware接口
Bean配置文件中的Custom init()方法和destroy()方法
@PostConstruct和@PreDestroy注解方式
使用customInit()和 customDestroy()方法管理bean生命周期的代碼樣例如下:
<beans>
<bean id="demoBean" class="com.howtodoinjava.task.DemoBean"
init-method="customInit" destroy-method="customDestroy"></bean>
</beans>