在spring 3中,@Async註解能讓某個方法快速變爲異步執行,立刻來先DEMO上手下。
假如在網站的用戶註冊後,須要發送郵件,而後用戶獲得郵件確認後才能繼續其餘工做;
假設發送是一個很耗費時間的過程,所以須要異步。
1 namespace要注意,加上task
html
2 RegularService.java 註冊類
java
今天對項目工程(spring3.0.6+structs2.2.3)進行瘦身,業務層bean統一用@Service註解,set注入用@Autowired替換,從xml配置文件中將業務bean配置所有清掉。
這時專門處理異步操做的bean報循環依賴(引用):
Bean with name ‘*********’ has been injected into other beans [******, **********, **********, **********] in its raw version as part of a circular reference具體狀況是beanA注入用於異步處理的beanB(含有@Async註解的方法),用於對某些操做進行異步處理,而beanB又注入beanA用於實現異步處理
解決方案:beanA注入異步處理的beanB的代理服務beanC(不含@Async註解),再由beanC注入beanB進行處理spring