app网站开发公司,微信小程序网站建设定制,重庆长寿网站设计公司哪家好,搜索引擎seo外包大家好#xff0c;我是雄雄#xff0c;现在是:2022年8月23日21:08:53 前言
在做微服务项目时#xff0c;我们可能都会遇到这样的情况#xff0c;那就是A服务需要调用B服务中的某个接口#xff0c;那有这样的需求时#xff0c;我们应该怎么处理呢#xff1f;
实现
使用… 大家好我是雄雄现在是:2022年8月23日21:08:53 前言
在做微服务项目时我们可能都会遇到这样的情况那就是A服务需要调用B服务中的某个接口那有这样的需求时我们应该怎么处理呢
实现
使用**FeignClient** 注解。 其实吧网上也有好多关于Feign的相关知识和教程一搜一大堆有的看眼就会了有的看眼就废了。。。
我来整理下我的方法吧尽量的简单明了不为别的就为了报答你能在茫茫人海中找到我让你别浪费时间抓紧CV到工程中就能跑到时候想起来了给我点个赞想不起来了就算了你好我好大家都好
A服务调用B服务的接口
第一步
检查下B服务中的接口能不能直接用主要看看返回值和参数如果是普通的Stirng、int之类的都能直接用 如果是实体或者对象集合我们就使用JSON传递数据。 如下我写了个接口 /*** 根据id查询网站的配置** return*/ApiOperation(value 网站设置表-通过id查询, notes 网站设置表-通过id查询)GetMapping(value /queryConfigById)public String queryConfigById(String id) {JSONObject jsonObject new JSONObject();WebConfig webConfig webConfigService.getById(id);if (webConfig null) {jsonObject.put(code, 200);jsonObject.put(data, null);return jsonObject.toJSONString();}jsonObject.put(code, 200);jsonObject.put(data, webConfig);return jsonObject.toJSONString();}我这个就是返回了JSON数据。
第二步
在A服务模块中新建个接口添加FeignClient注解,注解的值为B服务的模块名也就是yml文件中的name。
spring:application:name: xxx-webmain:allow-bean-definition-overriding: true接口代码如下
FeignClient(xxx-web)
public interface WebClient {/*** 根据编号查询网站的配置信息* param id* return*/GetMapping(value /config/webConfig/queryConfigById)String queryConfigById(RequestParam(id) String id);
}第三步
在controller控制器中自动注入B服务的模块。 Autowiredprivate WebClient webClient;
这个名字WebClient 就是我们创建的那个接口的名字。 至此你就可以在控制器中随便用了通过webClient点里面的方法即可我的业务代码如下 String huifu 欢迎关注~;try {//查询网站的配置信息主要获取的是关注用户回复的内容String webConfig webClient.queryConfigById(1);if(Strings.isNotBlank(webConfig)){JSONObject object JSONObject.parseObject(webConfig);Integer code object.getInteger(code);if(code200){String data object.getString(data);JSONObject dataObject JSONObject.parseObject(data);if(Strings.isNotBlank(dataObject.getString(xcxReply))){//拿到数据库中的关注之后回复的信息huifu dataObject.getString(xcxReply);}}}return new TextBuilder().build(huifu, wxMessage, weixinService);} catch (Exception e) {this.logger.error(e.getMessage(), e);}完事儿了