其他分享
首页 > 其他分享> > SpringBoot —— 复习

SpringBoot —— 复习

作者:互联网

SpringBoot复习

1.微服务架构思想

把每个功能元素独立出来,把独立出来的功能元素动态组合,需要的功能元素才去拿来组合,需要多一些时间可以整合多个功能元素,所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制

好处是:

2.自动配置原理

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
@SpringBootApplication //标注这个类是一个SpringBoot应用,是主要注解
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

点进去后可以发现有两个核心注解

@SpringBootConfiguration //SpringBoot的配置.
	@Configuration //Spring配置类
		@Component //说明这也是一个Spring组件
		
@EnableAutoConfiguration //自动导入配置
	@AutoConfigurationPackage //自动配置包
		@Import({Registrar.class}) //自动配置包 包注册
	@Import({AutoConfigurationImportSelector.class}) //自动配置导入选择

@Import({AutoConfigurationImportSelector.class})

中有一个

//获取所有的配置
List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);
//获取候选的配置
protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
        List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
        Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");
        return configurations;
    }

META-INF/spring.factories 自动配置的核心文件

结论:SpringBoot所有自动配置都是在启动的时候扫描并加载:spring.factories所有的自动配置类都在这里面,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就配置成功了

标签:启动器,SpringBoot,spring,配置,自动,class,复习
来源: https://blog.csdn.net/weixin_46540606/article/details/122858022