Springcloud学习笔记27--JeecgBoot 微服务feign接口调用
以服务(jeecg-cloud-system)调用服务(jeecg-cloud-test)为例讲解feign调用说明
1 jeecg-demo中编写服务接口
(1)编写接口
public interface TestService { Result<String> getMessage(String name); }
(2)编写实现类
@Service public class TestServiceImpl implements TestService { @Override public Result<String> getMessage(String name) { return Result.OK("hello "+name); } }
(3)编写服务接口
@Slf4j @Api(tags = "test") @RestController @RequestMapping("/test") public class TestController { @Resource private TestService testService; @GetMapping(value = "/demo") @ApiOperation(value = "测试方法", notes = "测试方法") public Result methodTest() { return Result.OK("这是测试方法TestController"); } @GetMapping("/getMessage") public Result<String> getMessage(@RequestParam String name) { return testService.getMessage(name); } }
2 jeecg-system中编写feign客户端
(1)启动类 加上 @EnableFeignClients
注解。
(2)编写feign客户端
//value = "jeecg-cloud-test"中填写被调用服务的名称
@FeignClient(value = "jeecg-cloud-test") @Component public interface JeecgCloudTestFeign { @GetMapping(value = "/test/getMessage") // 注意(/test/getMessage为jeecg-cloud-test服务提供方中TestController中的方法对应的访问路径 Result<String> getMessage(@RequestParam("name") String name); }
(3)编写测试方法
@RestController @RequestMapping("/test1") public class JeecgCloudFeignTestController { //注入feign客户端 @Autowired private JeecgCloudTestFeign jeecgCloudTestFeign; @GetMapping("/getMessage3") public Result<String> getMessage() { return jeecgCloudTestFeign.getMessage("jeecg-cloud-test"); } }
(4)postman测试
<1>直接访问微服务jeecg-cloud-system-start模块,该模块再调用服务提供方jeecg-cloud-test模块
注意:如果postman访问不通,考虑在nacos配置文件中shiro中放开路径(添加/test1/**)
隐藏大坑:如果使用shiro避免拦截,可能造成token失效,导致无法登录。因此,shiro中添加的路径不能乱加。
<2>经过网关,访问 http://127.0.0.1:9999/sys/test1/getMessage3
参考文献:
http://doc.jeecg.com/2046526
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-10-08 Idea使用技巧10--Idea java 中导包路径分析
2019-10-08 23 Maven工程module的移除和重新导入(经典)
2018-10-08 pika教程