Web 异步开发(响应式的基础)
异步 Web 开发时,原有的一些拦截机制(AOP)可能会失效。使用时要注意:
使用原生异步接口
只做为技术原理展示的角度,随便看下。不建议直接使用
@Controller
public class DemoController {
@Mapping("demo")
public void demo(Context ctx, String name) {
//开始异步
ctx.asyncStart();
RunUtil.async(() -> {
try {
demoDo(ctx, name);
} finally {
//结束异步(这个确保要执行)
try {
ctx.asyncComplete();
} catch (Throwable e) {
EventBus.pushTry(e);
}
}
});
}
private void demoDo(Context ctx, String name) {
ctx.output("Hello " + name)
}
}