我是靠谱客的博主 有魅力大雁,最近开发中收集的这篇文章主要介绍【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.注意点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部