Java中,回调方法是干什么滴?
2023-12-21 18:52:52
定义
在完成某一动作之后触发的方法,这个动作通常是一个接口的调用
应用场景
1、场景一
RocketMq中的异步发送消息应用到了回调方法,消息发出之后,不用等待消息发送后的响应结果而阻塞当前线程,而是通过一个回调接口来通知发送端发送的消息是否成功。
sendProducer.send(message, selectOneMessageQueue, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
sendCallback.onSuccess(sendResult);
}
@Override
public void onException(Throwable e) {
asyncResend(message,selectOneMessageQueue,sendCallback,retryTimes,e);
}
}, asyncTimeOut);
发送消息成功后,将sendResult传入回调方法中返回。
try {
SendResult sendResult =
MQClientAPIImpl.this.processSendResponse(brokerName, msg, response);
assert sendResult != null;
sendCallback.onSuccess(sendResult);
}
catch (Exception e) {
sendCallback.onException(e);
}
2、场景二
OAuth2.0中,授权成功之后要调用回调接口返回相应的授权码,后续拿到这个授权码才能进行之后的操作。
回调接口的入参可以设置为HttpServletRequest,当授权方授权成功后调用回调接口会将授权码等信息存放到HttpServletRequest中。
回调接口设置方将授权码等有用信息从HttpServletRequest中取出以进行后续操作。
回调接口代码示例
@RequestMapping(value = "/authorization/inform", method = RequestMethod.POST)
@ResponseBody
public RspVO getAuthorizationCode(HttpServletRequest request) {
RspVO rspVo = new RspVO();
rspVo.setData("OK");
String code = request.getParameter("code");
// 此处可添加dubbo接口,将code保存下来或传入后续操作中
return rspVo;
}
文章来源:https://blog.csdn.net/weixin_52457624/article/details/135136739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!