0%

Feign的继承支持

译自Spring Cloud Document

7.7 Feign的继承支持

Feign通过单继承接口支持模板apis。这样可以把常用操作通过接口进行分组。

UserService.java.
1
2
3
4
5
public interface UserService {

@RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
User getUser(@PathVariable("id") long id);
}
UserResource.java.
1
2
3
4
@RestController
public class UserResource implements UserService {

}
UserClient.java.
1
2
3
4
5
6
package project.user;

@FeignClient("users")
public interface UserClient extends UserService {

}

通常不建议在服务器和客户端之间共享接口(Java Interface)。这是一种紧耦合,而且这样也无法使用Spring MVC(方法中的参数映射不会被继承)。