美文网首页
spring AutoConfigurationSorter工具

spring AutoConfigurationSorter工具

作者: 全都是泡沫啦 | 来源:发表于2019-03-08 10:57 被阅读0次

    分析spring源码时候总是不知道哪个configuration先处理加载bean definetion,这里把spring的configuration排序的方法拿出来作为工具类,方便阅读源代码

    package org.springframework.boot.autoconfigure;
    
    import org.springframework.core.type.classreading.SimpleMetadataReaderFactory;
    
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * @author paul
     * @description
     * @date 2019/3/8
     */
    public class AutoConfigurationSorterTest {
        public static void main(String[] args) {
            String configurations = "org.springframework.cloud.sleuth.annotation.SleuthAnnotationAutoConfiguration," +
                    "org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration," +
                    "org.springframework.cloud.sleuth.log.SleuthLogAutoConfiguration," +
                    "org.springframework.cloud.sleuth.propagation.SleuthTagPropagationAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.TraceHttpAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.TraceWebAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.TraceWebServletAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.client.TraceWebClientAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.client.TraceWebAsyncClientAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.async.AsyncAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.async.AsyncCustomAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.async.AsyncDefaultAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.scheduling.TraceSchedulingAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClientAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.hystrix.SleuthHystrixAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.rxjava.RxJavaAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.reactor.TraceReactorAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.web.TraceWebFluxAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.zuul.TraceZuulAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.grpc.TraceGrpcAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.messaging.TraceMessagingAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.messaging.TraceSpringIntegrationAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.messaging.websocket.TraceWebSocketAutoConfiguration," +
                    "org.springframework.cloud.sleuth.instrument.opentracing.OpentracingAutoConfiguration";
    
            sort(Arrays.asList(configurations.split(","))).forEach(v-> System.out.println(v));
        }
    
        public static List<String> sort(List<String> data) {
            return
                    new AutoConfigurationSorter(
                            new SimpleMetadataReaderFactory(), AutoConfigurationMetadataLoader
                            .loadMetadata(Thread.currentThread().getContextClassLoader())).getInPriorityOrder(data);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:spring AutoConfigurationSorter工具

          本文链接:https://www.haomeiwen.com/subject/vrglpqtx.html