我有两个微服务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
谢谢您的帮助
对不起应该先检查一下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);
}