spring mvc 异步调用 @Async xml配置实例
时间: 2023-07-27 22:33:01 浏览: 125
Spring Async:实现异步调用示例.docx
首先,在 Spring MVC 中使用异步调用可以提高系统的并发处理能力和响应速度。下面给出一个使用 XML 配置的 Spring MVC 异步调用实例:
1. 在 Spring 配置文件中开启异步支持
```xml
<task:executor id="myExecutor" pool-size="10"/>
<task:annotation-driven executor="myExecutor"/>
```
2. 在 Controller 中使用 @Async 注解开启异步处理
```java
@Controller
@RequestMapping("/async")
public class AsyncController {
@Autowired
private AsyncService asyncService;
@RequestMapping("/test")
@ResponseBody
public String testAsync() {
System.out.println("Controller Thread: " + Thread.currentThread().getName());
asyncService.executeAsyncTask();
return "Async Task Started";
}
}
@Service
public class AsyncService {
@Async
public void executeAsyncTask() {
System.out.println("Service Thread: " + Thread.currentThread().getName());
}
}
```
3. 测试异步调用
在浏览器中访问 /async/test,可以看到控制台输出的两个线程名不同,说明异步调用已经生效。
注意:在使用 @Async 注解时,需要在 Spring 配置文件中添加 `<task:annotation-driven/>`,否则 @Async 注解不会生效。同时,需要在异步方法所在的类上添加 @Service 或 @Component 注解,以便 Spring 能够扫描到该类并注入代理对象。
阅读全文