在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