我有两个Java进程-使用不同的运行配置从同一个Jar中产生
过程A-客户端UI组件,使用基于Spring bean xml的方法开发。没有Spring Boot。
流程B-一个新的基于Springboot的组件,承载REST端点。
现在从流程A开始,在各个按钮上单击,如何使用Feign Client在流程B上调用REST端点。
注意-由于进程A是基于Spring XML的,目前我们还不能将其转换为Spring Boot。因此,@ EnableFeignClients不能用于初始化Feign客户
所以有两个问题
1)如果以上可能怎么办?
2)直到进程A移至Spring引导-Feign还是比spring REST模板更容易的选择吗?
答案 0 :(得分:0)
您可以像使用自述文件示例一样,以任何代码(没有spring)初始化Feign:
public static void main(String... args) {
GitHub github = Feign.builder()
.decoder(new GsonDecoder())
.target(GitHub.class, "https://api.github.com");
...
}
请查看入门指南:feign on github
答案 1 :(得分:0)
Feign是受Retrofit,JAXRS-2.0和WebSockets启发的Java到HTTP客户端绑定程序,您无需进行弹簧引导即可轻松使用伪装。是的,伪装仍然是更好的选择,因为伪装像Spring REST一样使用声明性方式简化了HTTP API客户端。
1)在接口中定义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可用以简化您的任务。