Spring 接口方法异步调用
对外开放的接口,在被外部调用时,需要校验接收到的数据,校验通过后才能开始进行数据处理,处理完成后向特定地址返回结果。
校验通过后即返回接口调用的响应信息,就涉及到方法的异步调用。在 Spring 框架下,添加@Async注解到对应的方法上即可实现。
详细配置如下:
- 添加applicationContext.xml配置
<beans xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLoacation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"> <context:component-scan /> <task:annotation-driven /> </beans>
- 异步方法上添加注解
@RunWith(SpringJunit4ClassRunner.class)
@ContextConfiguration({
"classpath:/applicationContext.xml"})
public class MethodAsyncTest{
@Autowired
MethodAsync methodAsync;
@Test
public void asyncTest() {
System.out.println(MethodAsync.methodOne());
System.out.println(MethodAsync.methodTwo());
System.out.println(MethodAsync.methodThree());
}
}
@Service
public class MethodAsync {
public static String methodOne(){
System.out.println("Method one.");
}
@Async
public static String methodTwo(){
try {
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Method two.");
}
public static String methodThree(){
System.out.println("Method three.");
}
}
运行结果:
Method one. Method three. Method two.
