回调在Spring中被大量使用,那什么是回调呢?
简单的说,在A类中调用B类的C方法,然后B类调用A类中的D方法。方法D被称为回调方法。回调是实现异步的基础。经典的回调方式如下:
- Class A实现回调接口CallBack——背景1
- class A中包含一个class B的引用b ——背景2
- class B有一个参数为callback的方法f(CallBack callback) ——背景3
- A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C
然后b就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D
介绍完了概念,那举个例子吧。客户端向服务器端发起请求并发送信息。在接收到客户端的信息后,服务器睡5秒(模拟耗时操作),5秒之后回调客户端并输出请求状态。
回调接口
服务器端
客户端
测试程序
测试结果
先输出前一二三行,五秒之后输出四五行。