Springcloud學習筆記27--JeecgBoot 微服務feign介面呼叫
阿新 • • 發佈:2021-10-08
以服務(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測試
注意:如果postman訪問不同,考慮在nacos配置檔案中shiro中放開路徑(新增/test1/**)
參考文獻:
http://doc.jeecg.com/2046526