我是靠谱客的博主 有魅力大雁,最近开发中收集的这篇文章主要介绍【SpringBoot-注解学习】@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder1.作用2.使用3.注意点,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
今天看到公司大佬写了Configuration的配置类,是解决将feign默认请求修改为okhttp配置。
但是我看到了一个不认识的注解所以就学习了一下。
下面是代码:
@Configuration
@ConditionalOnClass(Feign.class)
@AutoConfigureAfter(FeignAutoConfiguration.class)
@SuppressWarnings("all")
public class FeignOkHttpConfiguration {}
是这个注解:@AutoConfigureAfter(),现在就总结下自己的学习成果。
1.作用
Spring Boot它会根据当前容器内的情况来动态的判断自动配置类的加载与否、以及加载的顺序,所以可以说:Spring Boot的自动配置它对顺序是有强要求的。需求驱使,Spring Boot给我们提供了@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder这三个注解来帮我们解决这种诉求。
2.使用
我找了一些源码咱们看看他们是怎么使用的。
@Configuration(proxyBeanMethods = false)
@AutoConfigureBefore(EnvironmentEndpointAutoConfiguration.class)
@AutoConfigureAfter(LifecycleMvcEndpointAutoConfiguration.class)
public class WritableEnvironmentEndpointAutoConfiguration {...}
这个配置的加载顺序是:
- LifecycleMvcEndpointAutoConfiguration 已完成
- WritableEnvironmentEndpointAutoConfiguration 已完成
- EnvironmentEndpointAutoConfiguration 已完成
@Configuration(proxyBeanMethods = false)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
public class ServletWebServerFactoryAutoConfiguration { ... }
这个配置的加载顺序是:
- @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)最高优先级,也就是说它无其它依赖,希望自己是最先被初始化的。
3.注意点
- 想依赖于spring.factories里的先后顺序的来控制实际的加载顺序 是不可以的。
- 尽量不要让自动配置类既被扫描到了,又放在spring.factories配置了,否则后者会覆盖前者,很容易造成莫名其妙的错误
最后
以上就是有魅力大雁为你收集整理的【SpringBoot-注解学习】@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder1.作用2.使用3.注意点的全部内容,希望文章能够帮你解决【SpringBoot-注解学习】@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder1.作用2.使用3.注意点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复