今天對項目工程(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進行處理