java - 在独立库中使用 Feign 与 Springboot 应用程序

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

我想为 Some-Micro-Service 创建一个客户端作为库(Some-Micro-Service-Client),这样它就可以轻松地包含在 Some-Other-Micro-Service 的 pom 中。

我想使用 Feign,因为它使事情变得更容易,但我不确定我的架构是否可行。我看到的所有 Feign 示例都是从在 SpringBootAppplication 类上使用 @EnableFeignClient 注释开始的,但由于我不希望必须“启动”客户端库,所以我想知道是否可以将其包含在库中而不使用 EnableFeignClient 注释。

最佳答案

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

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

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

    \\ getters and setters ...
}

之后,我们声明与 future 的其余客户端方法的接口(interface):

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

关于java - 在独立库中使用 Feign 与 Springboot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56383675/

相关文章:

java - 哲学家用餐时 Java 中的信号量问题

java - 在Gradle + Spring Boot中创建任务以设置默认配置文件?

java - Swagger 必需参数缺失时返回 500,而不是 404

ruby-on-rails - 如何在 rails 中组织传出的 api 请求 url

go - 有没有办法在微服务前面实现 SSO?

java - 如何确保 Java Spring boot 中的 REST Http 请求时间不超过 15 秒

java - 从智能卡读取私钥以对XML文档进行数字签名

java - 删除 <!-- 和//--> 之间的内容

java.lang.NoSuchMethodError : No static method clearInstance()

java - ClassCastException : org. springframework.orm.jpa.EntityManagerHolder 无法转换为 org.springframework.orm.hibernate5.SessionHolder