FeignClients在Spring云应用程序

时间:2017-01-18 15:33:23

标签: spring-mvc spring-cloud spring-cloud-netflix netflix-feign spring-cloud-feign

我的应用程序中定义了REST FeignClient

@FeignClient(name = "gateway", configuration = FeignAuthConfig.class)
public interface AccountsClient extends Accounts {

}

我在服务器和客户端之间共享端点接口:

@RequestMapping(API_PATH)
public interface Accounts {


    @PostMapping(path = "/register",
            produces = APPLICATION_JSON_VALUE,
            consumes = APPLICATION_JSON_VALUE)
    ResponseEntity<?> registerAccount(@RequestBody ManagedPassUserVM managedUserDTO)
            throws EmailAlreadyInUseException, UsernameAlreadyInUseException, URISyntaxException;

}
除了我的客户端应用程序中的FeignClient定义也被注册为独立的REST端点之外,Everythng工作正常。

目前,我尝试使用过滤器来阻止此行为,该过滤器在我的客户端应用程序中为404客户端映射返回FeignClinet状态代码。然而,这个workeraund似乎非常不优雅。

还有另一种方法可以防止假装客户端注册为单独的REST端点吗?

2 个答案:

答案 0 :(得分:1)

这是Spring Cloud假装支持的一个已知限制。通过向接口添加@RequestMapping,Spring MVC(不是Spring Cloud)假设您需要作为端点。目前不支持Feign界面上的@RequestMapping

答案 1 :(得分:0)

我已经使用了解决这个错误的Spring Framework行为的方法:

List<int>

我在SpringCloud issue

中找到了它