首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Springboot自动配置原理

自动配置其实就是将默认的配置自动加载进去,不需要我们去手动进行配置,依然是对源码进行分析

从SpringBootApplication引导类开始:@SpringBootApplication注解源码解析

(1)@SpringBootConfiguration

@SpringBootConfiguration注解上面有一个@Configuration 注解,既标注该类是 Spring 的一个配置类 ,其实,@SpringBootConfiguration 注解就相当于Configuration注解,用于标注该类是 Spring 的一个配置类,和 Spring 中的@Configuration 注解是一个意思

(2)@ComponentScan

@ComponentScan注解是用于组件扫描,默认扫描当前引导类所在的包下的索引

(3)@EnableAutoConfiguration

@EnableAutoConfiguration注解是 SpringBoot 自动配置功能开启

|

@Import({AutoConfigurationImportSelector.class})注解配置,这是导入了AutoConfigurationImportSelector类,意思是自动配置导入选择器

|

AutoConfigurationImportSelector类中SpringFactoriesLoader.loadFactoryNames 方法的作用就是从META-INF/spring.factories文件中读取指定类对应的类名称列表

|

spring.factories文件存在大量的以 Configuration 为结尾的类名称,这些类就是存有自动配置信息的类,而 SpringApplication 在获取这些类名后再加载

|

ServletWebServerFactoryAutoConfiguration为例

|

@EnableConfigurationProperties(ServerProperties.class)代表加载 ServerProperties 服务器配置属性类

|

@ConfigurationProperties(prefix = "server")表示SpringBoot配置文件中的前缀,SpringBoot会将配置文件中以server开始的属性映射到该类的字段中

|

spring-configuration-metadata.json

|

{

"name": "server.port",

"type": "java.lang.Integer",

"description": "Server HTTP port.",

"defaultValue": 8080

}

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OnFh0S1I7iUueZpxzQUGBLkw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券