千家信息网

Spring Boot的底层原理是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"Spring Boot的底层原理是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring Boot的底层原理是什么"吧!1
千家信息网最后更新 2026年11月04日Spring Boot的底层原理是什么

这篇文章主要讲解了"Spring Boot的底层原理是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring Boot的底层原理是什么"吧!

1.基于你对springboot的理解描述一下什么是springboot

它是一个服务于spring框架的框架,能够简化配置文件,快速构建web应用,内置tomcat,无需打包部署,直接运行。

2.约定优于配置指的是什么?

maven 的目录结构a) 默认有 resources 文件夹存放配置文件b) 默认打包方式为 jarspring-boot-starter-web 中默认包含 spring mvc 相关依赖以及内置的 tomcat 容器,使得构建一个 web 应用更加简单默认提供 application.properties/yml 文件默认通过 spring.profiles.active 属性来决定运行环境时读取的配置文件EnableAutoConfiguration 默认对于依赖的 starter 进行自动

3.@SpringBootApplication由哪几个注解组成,这几个注解分别表示什么作用

SpringBootApplication 本质上是由 3 个注解组成,分别是

@Configuration@EnableAutoConfiguration@ComponentScan@Configuration:在启动类里面标注了@Configuration,意味着它其实也是一个 IoC容器的配置类

@EnableAutoConfiguration:springboot 应用把所有符合条件的@Configuration 配置都加载到当前 SpringBoot 创建并使用的 IoC 容器中。

@ComponentScan:ComponentScan 默认会扫描当前 package 下的的所有加了@Component 、@Repository、@Service、@Controller的类到 IoC 容器中;

4.springboot自动装配的实现原理

如果是之前的spring中使用redis需要在xml定义bean,现在只需要依赖一个spring-boot-starter-data-redis的jar包,jar中定义了RedisConfiguration,当启动的时候spring会自动装载RedisConfiguration,那spring是如何知道配置类在哪里的呢?RedisConfiguration类的路径放在了classpath*META-INF/spring.factories的文件中,spring会加载这个文件中配置的configuration

(1)SpringApplication.run(AppConfig.class,args);执行流程中有refreshContext(context);这句话.

(2)refreshContext(context);内部会解析我们的配置类上的标签.实现自动装配功能的注解@EnableAutoConfiguration

(3)会解析@EnableAutoConfiguration这个注解里面的@Import引入的配置类.AutoConfigurationImportSelector

(4)AutoConfigurationImportSelector这个类中有这个方法.SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader());

(5)SpringFactoriesLoader.loadFactoryNames的作用就是读取jar包中的/项目中的META-INF/spring.factories文件.

(6)spring.factories配置了要自动装配的Configuration类

5.spring中的spi机制的原理是什么?

SPI的全名为Service Provider Interface,为某个接口寻找服务实现的机制。当服务的提供者,提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件。该文件里就是实现该服务接口的具体实现类。而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。通过这个约定,就不需要把服务放在代码中了,通过模块被装配的时候就可以发现服务类了。

在springboot的自动装配过程中,最终会加载META-INF/spring.factories文件,而加载的过程是由SpringFactoriesLoader加载的。从CLASSPATH下的每个Jar包中搜寻所有META-INF/spring.factories配置文件,然后将解析properties文件,找到指定名称的配置后返回。需要注意的是,其实这里不仅仅是会去ClassPath路径下查找,会扫描所有路径下的Jar包,只不过这个文件只会在Classpath下的jar包中。

通过spi技术可以自定义starter,在自定义的配置文件META-INF/spring.factories中加入实现类,依赖这个starter的项目就会扫描jar包下的配置,找到实现类进行装载实例化

感谢各位的阅读,以上就是"Spring Boot的底层原理是什么"的内容了,经过本文的学习后,相信大家对Spring Boot的底层原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 配置 服务 原理 装配 注解 底层 容器 接口 就是 时候 模块 路径 学习 应用 装载 作用 内容 实例 是由 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 青岛互联网科技公司 互联网科技视频 互联网科技上市公司 互联网科技公司名称 天扬科技互联网广告 衡水科技产业互联网平台 青海省互联网新科技 南山科技园互联网公司有哪些 南平创想时代互联网科技有限公司 武汉健翔互联网络科技有限公司 厦门千工互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网科技与大数据专业 天津腾达互联网科技有限公司 世界互联网领先科技成果获奖 深圳无忧互联网科技 美国五大互联网科技公司市值多少 众联互联网络科技 重庆科技产业互联网有哪些 如何强化互联网金融科技 博彦科技互联网金融 互联网佳科技有限公司 互联网科技工作委员会副主任毛军 互联网最新的科技有限公司 未来的互联网科技 互联网教育科技公司vipkid 朱啸虎曾投资哪些互联网科技企业 广州百诚互联网科技有限公司官网 中国互联网公司的科技投入 数字互联网科技有限公司
0