在独立库和Springboot应用程序中使用Feign

时间:2019-05-30 18:23:36

标签: java spring-boot microservices spring-cloud-feign

我想为Some-Micro-Service创建一个客户端库(Some-Micro-Service-Client),以便可以轻松地将其包含在Some-Other-Micro-service的pom中。

我想使用Feign,因为它可以简化事情,但是我不确定我的体系结构是否可以实现。我看到的所有Feign示例都从在SpringBootAppplication类上使用@EnableFeignClient批注开始,但是由于我不希望客户端库必须“启动”,所以我想知道是否可以仅包含它在库中使用,而不使用EnableFeignClient注释。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用没有@EnableFeingClient批注的feign。假设我们想从this API接收数据。在下面的示例中,我使用了Feign CoreFeign Gson依赖项。

首先我们需要创建类,在其中我们将获得json结果:

public class TODO {
    private long id;
    private long userId;
    private String title;
    private boolean completed;

    \\ getters and setters ...
}

此后,我们使用将来的rest-client方法声明接口:

public interface TaskApi {

    @RequestLine("GET /todos/{id}")
    TODO getTODO(@Param("id") int id);
}

最后,让我们构建所需的休息客户并提出测试请求:

public class FeignTest {

    private static final String API_PATH = "https://jsonplaceholder.typicode.com";

    public static void main(String[] args) {
        TaskApi taskApi = Feign.builder()
                .decoder(new GsonDecoder())
                .target(TaskApi.class, API_PATH);
        TODO todo = taskApi.getTODO(1);
    }
}

有关更多信息和可能性,请阅读official repository