springboot 自动配置的理解

spring boot是一个自动配置的应用框架。

两个重点:

1.框架

2.自动配置

什么是框架?

开发软件系统时,你只编写一部分代码,你的代码适当时候会调用库函数,共同完成系统功能,这是我们常用的一种开发方式。还有一种形式是你编写一些代码(函数),由其他人的代码(框架)来调用。框架是指一系列第三方编写的代码,控制系统的主执行流程,在适当时候来调用你编写的代码,共同完成系统的功能。

框架执行时,根据需求不同,需要不同的代码。通常我们需要提供一个配置文件来告诉系统,我需要框架的哪些代码。

2.自动配置的作用提供一个用默认的配置(约定的配置),简化配置工作。系统的逻辑依靠代码的执行来完成,在Java中,代码执行是由对象的方法完成,因此配置文件中,主要描述框架需要哪些Java的对象,对象的初始属性值,以及对象的关联关系等。

spring框架,提供了一种通过配置创建bean对象的方式。

  1. spring 配置bean方式有三种:xml,注解,配置类方式。
  2. springboot 采用配置类进行自动配置。

配置类名为xxxAutoConfiguration。每一个xxxAutoConfiguration,会配置系统运行相关的Bean。Bean的相关属性由application.properties或application.yml文件指定。

@ConfigurationProperties注解:把配置文件的属性值赋给pojo对应的的属性。
@EnableConfigurationProperties注解可以向容器注入一个pojo对象。

在配置类xxxAutoConfiguration中一般可以通过@EnableConfigurationProperties注入一个pojo,在配置类中再读取pojo的属性,赋值给Bean的相关属性。

Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的。

spring boot 自身系列框架的自动配置类已经放在spring-boot-autoconfigure-xxx.jar包内,并且在文件/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports中,列出了所有spring框架的自动配置类。spring-boot的应用会根据你项目类路径中的所包含相关的类,有选择的启用相关配置类。比如你在项目中加入spring-webmvc的jar包,spring-boot 的自动配置类WebMvcAutoConfiguration将有效,并将spring-mvc框架相关的对象注入到容器中。

如果第三方的框架要启用自动配置,那么先要定义一个自动配置类,里面定义该框架运行时需要的Bean对象,然后再将该配置类名写入/META-INF/spring/xxx.imports文件中。 spring-boot会找到相应的自动配置类,将相应的Bean对象注入到容器中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值