SpringCloud之整合Feign

假设提供者有如下服务接口方法

@RestController
@RequestMapping("/person")
public class PersonController {
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    public Person get(@PathVariable Integer id) {
        Person p = new Person();
        p.setId(id);
        p.setName("name" + id);
        return p;
    }
}

服务调用者端 pom.xml加入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

在服务调用者端启动类开启feign

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

在服务调用者端编写一个PersonClient.java

//声明调用的服务名称
@FeignClient("my-provider") 
public interface PersonClient {    
    @RequestMapping(method = RequestMethod.GET, value = "/person/get/{personId}")
    Person getPerson(@PathVariable("personId") Integer id);
}

在服务调用者端增加一个测试TestController调用提供者

@Autowired
private PersonClient personClient;

@GetMapping("/personGetFeignTest")
@ResponseBody
public Person personGetFeignTest() {
    return personClient.getPerson(100);
}

启动注册中心 、提供者、调用者

访问调用者的personGetFeignTest url 测试是否可以成功调用提供者服务

猜你喜欢

转载自www.cnblogs.com/zengnansheng/p/10389838.html