使用 Spring MVC 和 Feign Client(使用 Spring Cloud)构建端点和客户端。我的想法是,由于两端需要具有相同的注释 - 并且它们必须非常同步。也许我可以在接口中定义它们并让两端实现它。
测试它我有点惊讶它实际上适用于 Spring Web 端。
但是我找不到为 Feign 客户做同样事情的方法。
我基本上有界面:
@RequestMapping("/somebaseurl")
public interface ServiceInterface {
@RequestMapping(value = "/resource/{identifier}", method = RequestMethod.POST)
public SomeResource getResourceByIdentifier(String identifier);
}
然后是 RestController
@RestController
public class ServiceController implements ServiceInterface {
public SomeResource getResourceByIdentifier(@PathVariable("identifier") String identifier) {
// Do some stuff that gets the resource
return new SomeResource();
}
}
最后是 Feign 客户端
@FeignClient("serviceName")
public interface ServiceClient extends ServiceInterface {
}
Feign 客户端似乎没有读取继承的注释。那么还有其他方法可以完成同样的事情吗?我可以在哪里将 ServiceInterface 变成 Feign 客户端而不直接注释它?