我有两个微服务demo-cartservice
和demo-feignclient
,其中demo-feignclient
从demo-cartservice
在这两个项目中,我在server.servlet.context-path=/demo/api/
application.properties
Feign客户端代理使用demo-cartservice
@FeignClient("demo-cartservice/demo/api")
@RibbonClient("demo-cartservice/demo/api")
public interface DemoCartServiceProxy
{
@GetMapping("/carts/{cartId}")
public Cart getCart(@PathVariable("cartId") long id);
}
这很好用。
是否有办法从application.properties
读取服务器别名,如下所示:
@FeignClient("${cartservice-alias}/${servlet-context}")
@RibbonClient("${cartservice-alias}/${servlet-context}")
public interface DemoCartServiceProxy
{
@GetMapping("/carts/{cartId}")
public Cart getCart(@PathVariable("cartId") long id);
}
我希望application.properties
项目的demo-feignclient
server.servlet.context-path=/demo/api/
cartservice-alias=demo-cartservice
感谢您的帮助
答案 0 :(得分:1)
抱歉应该先检查docs。设置后
feign.name=demo-cartservice/demo/api
在application.properties
demo-feignclient
这个有效:
@FeignClient(name="${feign.name}")
@RibbonClient(name="${feign.name}")
public interface DemoCartServiceProxy
{
@GetMapping("/carts/{cartId}")
public Cart getCart(@PathVariable("cartId") long id);
}