对外开放的接口,在被外部调用时,需要校验接收到的数据,校验通过后才能开始进行数据处理,处理完成后向特定地址返回结果。
校验通过后即返回接口调用的响应信息,就涉及到方法的异步调用。在 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.