gpt4 book ai didi

spring - 如何在不使用 Spring Boot 的情况下注入(inject) Feign 客户端并调用 REST 端点

转载 作者:行者123 更新时间:2023-12-02 03:13:50 27 4
gpt4 key购买 nike

我有两个 Java 进程 - 它们是使用不同的运行配置从同一个 Jar 生成的

流程 A - 客户端 UI 组件,使用基于 Spring bean xml 的方法开发。那里没有 Spring Boot。

进程 B - 一个新的基于 Springboot 的组件,托管 REST 端点。

现在,从进程 A 中,单击各个按钮,如何使用 Feign 客户端调用进程 B 上的 REST 端点。

注意 - 由于进程 A 是基于 Spring XML 的,目前我们无法将其转换为 Spring boot。因此@EnableFeignClients不能用于初始化Feign客户端

那么两个问题

1) 如果上述可行怎么办?

2)直到进程 A 转移到 Spring boot - Feign 仍然是比 Spring REST 模板更简单的选择吗?

最佳答案

Feign是一个 Java 到 HTTP 客户端绑定(bind)器,灵感来自 Retrofit、JAXRS-2.0 和 WebSockets,您可以轻松使用 feign,无需 spring boot。是的,feign 仍然是更好的选择,因为 Feign 使用声明方式简化了 HTTP API 客户端,如 Spring REST确实如此。

1) 在接口(interface)中定义http方法和端点。

@Headers({"Content-Type: application/json"})
public interface NotificationClient {

@RequestLine("POST")
String notify(URI uri, @HeaderMap Map<String, Object> headers, NotificationBody body);
}

2)使用Feign.builder()方法创建Feign客户端。

Feign.builder()
.encoder(new JacksonEncoder())
.decoder(customDecoder())
.target(Target.EmptyTarget.create(NotificationClient.class));

有各种decoders可以在 feign 中使用来简化您的任务。

关于spring - 如何在不使用 Spring Boot 的情况下注入(inject) Feign 客户端并调用 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56772921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com