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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM