SpringBoot架构篇-⾃动装配的顺序性⽂章⽬录
⼀、@AutoConfigureBefore
表⽰该⾃动配置类在其他指定的⾃动配置类之前应⽤。
与标准的@Configuration配置类相同。
⼆、@AutoConfigureAfter
表⽰该⾃动配置类在其他指定的⾃动配置类之后应⽤。
与标准的@Configuration配置类相同。
三、@AutoConfigureOrder
指定⾃动配置类的顺序性,值越⼩优先级越⾼。
与标准的@Configuration配置类相同。
四、AutoConfigurationSorter
它是以上三个注解的底层的顺序控制的实现逻辑。
下⾯重点看下getInPriorityOrder(…)⽅法。
⾸先按照类名的数字顺序或者字典顺序排序。springboot结构
然后按照@AutoConfigureOrder指定的顺序排序。
最后按照@AutoConfigureBefore、@AutoConfigureAfter依赖的顺序排序。接下来分析下@AutoConfigureOrder的底层实现原理。
实际上是⽐较AutoConfigurationClass的getOrder()⽅法。
MetadataReaderFactory -> MetadataReader -> AnnotationMetadata -> AnnotationAttributes。
获取@AutoConfigureOrder注解的value值。
接着看@AutoConfigureBefore、@AutoConfigureAfter注解的解析原理。
对所有⾃动配置类按照注解指定的顺序排序。
排序的过程。
排序的核⼼算法。
获取之前、之后的类名集合。
获取value、name属性的值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论