Feign从配置文件中读取url

Feign的url和name都是可配置的,就是从配置文件中读取的属性值,然后用占位符引用就可以了:

${rpc.url}

@FeignClient(name = "me",
        url = "${rpc.url}",  // 这里是可以配置的, 就不用再硬编码了
        fallbackFactory = MyHystrixFallbackFactory.class,
        configuration = MultipartSupportConfig.class)
public interface RpcService {
    @RequestMapping(value = "/hello", method = GET)
    Result helloWorld(@RequestHeader("token") String accessKey,
                              @RequestParam("sign") String sign);
}

我觉得原理应该是这样的,当启动的时候肯定会有人去扫描这些注解,扫描到了这些注解之后呢,就会读取注解上面给的值。

在本例中比如url和name,读到了这些值之后,去判断是否用了占位符,如果用了占位符,就用配置的属性值去替换这个占位符,然后再通过Spring实例化,这样FeignClient就有了。

不是所以有的注解都支持这个,我猜的,所以不要瞎用,先查下资料或者做一下测试之类的。

Spring Cloud的官网好像有这个。

你可能感兴趣的:(Feign从配置文件中读取url)