目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

微服务 教程

1085个小节阅读:196.5k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(185)
赞(0)

SpringBoot原理分析_自动配置

v2-dbddb93d2f79d4fbac67f4864f2842e6_b

  1. 查看注解@SpringBootApplication的源码

    image-20211230185636975

    @SpringBootConfifiguration:等同与@Confifiguration,既标注该类是Spring的一个配置类

    @EnableAutoConfifiguration:SpringBoot自动配置功能开启

  2. 查看注解@EnableAutoConfifiguration的源码

    image-20211230185654054

    @Import(AutoConfifigurationImportSelector.class) 导入了AutoConfifigurationImportSelector

  3. 查看AutoConfifigurationImportSelector源码

    image-20211230190127533

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

  4. 点开spring-boot-autoconfigurespring.factories文件

    image-20220117103652632

    有关配置类的信息如下:

    image-20211230190425856

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

  5. 我们ServletWebServerFactoryAutoConfifiguration为例来分析源码:

    image-20211230190754338

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

  6. 进入ServerProperties类源码如下:

    image-20211230190856661

    prefifix = "server"表示SpringBoot配置文件中的前缀,SpringBoot会将配置文件中以server开始的属性映射到该类的字段中。所以配置网络端口的方式为server.port

  7. 如果我们没有在配置文件中配置默认端口,SpringBoot就会读取默认配置,而默认配置存放在META-INF/spring-configuration-metadata.json中,打开spring-boot-autoconfigurespring.factories文件

    image-20220117103720349

    该文件中保存的就是所有默认配置信息。

    image-20211230191711454

实时学习反馈

1. 在SpringBoot的配置类信息保存在文件下

A spring-configuration-metadata.json

B spring.factories

C AutoConfifigurationImportSelector.java

D ServerProperties.java

2. 在SpringBoot的默认配置信息保存在文件下

A spring-configuration-metadata.json

B spring.factories

C AutoConfifigurationImportSelector.java

D ServerProperties.java

答案

1=>B 2=>A

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2