spring cloud - 从应用程序属性中获取假客户端的服务器名称
spring cloud - get server name for feign client from application properties
我有两个微服务 demo-cartservice
和 demo-feignclient
,其中 demo-feignclient
从 demo-cartservice
获取资源
在这两个项目中,我都在 application.properties
中设置了 server.servlet.context-path=/demo/api/
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);
}
在 demo-feignclient
项目的 application.properties
中,我想要
server.servlet.context-path=/demo/api/
cartservice-alias=demo-cartservice
感谢您的帮助
抱歉应该先检查 docs。设置后
feign.name=demo-cartservice/demo/api
在 demo-feignclient
的 application.properties
中有效:
@FeignClient(name="${feign.name}")
@RibbonClient(name="${feign.name}")
public interface DemoCartServiceProxy
{
@GetMapping("/carts/{cartId}")
public Cart getCart(@PathVariable("cartId") long id);
}
我有两个微服务 demo-cartservice
和 demo-feignclient
,其中 demo-feignclient
从 demo-cartservice
在这两个项目中,我都在 application.properties
server.servlet.context-path=/demo/api/
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);
}
在 demo-feignclient
项目的 application.properties
中,我想要
server.servlet.context-path=/demo/api/
cartservice-alias=demo-cartservice
感谢您的帮助
抱歉应该先检查 docs。设置后
feign.name=demo-cartservice/demo/api
在 demo-feignclient
的 application.properties
中有效:
@FeignClient(name="${feign.name}")
@RibbonClient(name="${feign.name}")
public interface DemoCartServiceProxy
{
@GetMapping("/carts/{cartId}")
public Cart getCart(@PathVariable("cartId") long id);
}