Spring Cloud @EnableFeignClients注解的属性字段basePacka详解

网友投稿 225 2022-12-05

Spring Cloud @EnableFeignClients注解的属性字段basePacka详解

@EnableFeignClients注解的属性字段basePacka

一般情况下,我们在启动类上面添加了@EnableFeignClients注解就是表明当前应用服务(我们称之为服务A)中有的地方想要引用其它应用服务(我们称之为服务B)中的接口。

如果服务B可以单独启动起来并且注册到注册中心,则我们仅仅在服务A的启动类中添加@EnableFeignClients注解即可;如果服务B没有单独启动起来,而是以Jar包的形式被引入到服务A中,则服务A在启动的时候是不会主动去加载服务B中标注了@FeignClient注解的interface而去自动生成bean对象,

这样我们在服务A中的Controller类中以如下这种方式去引入使用服务B中的标注了@FeignClient注解的接口 是会报错的

import com.bc.product.client.ProductClient;

@RestControllehttp://r

public class ClientController {

@Autowired

private ProductClient productClient;

...

}

这个时候就需要使用basePackages属性字段去指明应用程序A在启动的时候需要扫描服务B中的标注了@FeignClient注解的接口的包路径

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients(basePackages = {"com.bc.product.client"})

public class OrderApplication {

public static void main(String[] args) {

SpringApplication.run(OrderApplication.class, args);

}

}

关于EnableFeignClients的basePackages问题

如果使用了springcloud的openhttp://Feign,在application上需要添加@EnableFeignClients注解。却没有明确指明basePackages的路劲。

则spring ioc不会自动为外部引入的其他服务jar包里,标注了@FeignCliekZrhQQnrnt注解的interface自动生成bean对象。

正确的做法应该是明确指定basePackages的值,比如像这样:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中的ThreadLocal详解
下一篇:java.lang.String和java.util.NClob互相转换方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~