springCloud 子服务之间的调用
Springcloud 子服务A的方法
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestAController { @RequestMapping("/testA") public String TestAController(){ return "Hello testA"; } }
Springcloud 子服务B 调用 子服务A这个方法
首先在服务B创建一个接口如下:服务A的服务名(已eureka中为准)+ 服务A的方法名
以上是注册中心的服务名称
package com.example.serviceb.controller; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; //填入注册中心中的应用名,也就是要调用的微服务的应用名 //在eureka页面中可以找到 @FeignClient("SERVICE-OBJCAT-A") public interface ServiceAFeignClient { @RequestMapping("testA") public String TestAController(); }
再创建一个类进行调用
首先添加注解声明是注册中心客户端@EnableEurekaClient。实现不同子服务调用@EnableFeignClients。再将接口注入到此类中进行调用
注:也可在启动程序上加 @EnableEurekaClient和@EnableFeignClients
package com.example.serviceb.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//添加注解声明是注册中心客户端
@EnableEurekaClient
//实现不同子服务调用
@EnableFeignClients
public class TestBController {
@Autowired
private ServiceAFeignClient serviceAFeignClient;
@RequestMapping("call")
public String call(){
String redult = serviceAFeignClient.TestAController();
return "b to a 访问结果 ---" + redult;
}
}
打印结果: