Skip to content

Jasonyang2014/springcloud-practice

Repository files navigation

SpringCloud Practice

官网说明

  • org.springframework.cloud 2021.0.7
  • spring-boot-starter-parent 2.7.12
  • hystrix => spring-cloud-starter-netflix-hystrix 2.2.10.RELEASE
  • jdk 1.8.0_144
  • com.alibaba.cloud 2021.0.5.0

Auto Configuration

@EnableAutoConfiguration的处理类org.springframework.boot.autoconfigure.AutoConfigurationImportSelector。 加载方法如下

class AutoConfigurationImportSelector{

    /**
     * 获取所有的类信息
     */
    protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
        List<String> configurations = new ArrayList<>(
                //加载 META-INF/spring.factories 下面的信息
                SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()));
        ImportCandidates.load(AutoConfiguration.class, getBeanClassLoader()).forEach(configurations::add);
        Assert.notEmpty(configurations,
                "No auto configuration classes found in META-INF/spring.factories nor in META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. If you "
                        + "are using a custom packaging, make sure that file is correct.");
        return configurations;
    }
}

对于Configuration的配置类的处理,使用的是org.springframework.context.annotation.ConfigurationClassPostProcessor

简要说明

About

springcloud practice

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors