关于Feign的自定义配置类为什么不需要加上@Configuration
之前写此篇博客的时候没看见这篇,感觉写的很不错现在加上供参考:
https://blog.csdn.net/mnicsm/article/details/124270564
在进行Feign的自定义配置时,只需要在对应的@EnableFeignClients上配置defaultConfiguration属性为自定义配置类即可
不需要添加@Configuration来显示声明这个类是配置类,@Bean也能生效
本着钻研和求知精神,我进行了DEBUG
发现SpringBoot在启动时会加载一个容器叫做org.springframework.context.annotation.AnnotationConfigApplicationContext
即注解配置ApplicationContext,这样的一个容器
它会在SpringBoot应用启动时加载注解上的信息,并将@EnableFeignClients这个注解接口
通过代理对象的方式实例化
这个代理对象的信息会被SpringBoot解析,并且由AnnotationConfigApplicationContext这个容器解析
此时由于AnnotationConfigApplicationContext的特性,它可以不添加@Configuration或者@Componet,也可以加入到IOC容器中
代理对象中配置好的自定义配置类(未加@Configuration)就会被加入到容器中
此时,这个自定义配置类也就拥有了注册Bean的功能了