【二】spring boot-设计思想

spring boot-设计思想

**简介:**现在越来越多的人开始分析spring boot源码,拿到项目之后就有点无从下手了,这里介绍一下springboot源码的项目结构

一、项目结构

从上图可以看到,源码分为两个模块:

  • spring-boot-project:整个SpringBoot框架全部功能在这个模块实现,包含核心、工具、安全、文档、starters等项目。
  • Spring-boot-tests:这个模块SpringBoot的测试模块,跟部署测试和集成测试有关。

SpringBoot的全部功能在spring-boot-project模块实现,下面重点来介绍下 spring-boot-project 模块,其中spring-boot模块是Spring Boot核心代码,也是入口类SpringApplication类所在项目。如下图是spring boot模块的展开图

二、设计思想

核心设计思想是"约定优于配置",一开始看到这句该不知道怎么去了解,使用一段时间时候感受到了springboot设计的优势之后就可以很深刻的体会到这句话的意思了。之前没有springboot脚手架的时候,项目配置越来越多,逐渐难以维护,而且使用上还经常出错,使用了springboot脚手架来开发系统之后,发现springboot约定了很多内置的配置,我们在开发的过程中只需要引入相应的starter包,springboot就可以帮我们完成很多模版化的工作。

需要深入理解springboot设计思想的话我们还需要去探索一下springboot的核心运行原理,每个springboot项目都可以通过main方法启动运行,而main方法里面调用了SpringApplication类的run方法,要想搞清楚springboot的运行原理,需要深入到run方法源码了,这里我们不做这方面的介绍,下一篇文章会进行细节方面的讲解。如下贴出了run方法源码:

run方法中主要实现了如下的功能:

复制代码
* 第一步:获取并启动监听器
* 第二步:构造容器环境
* 第三步:创建容器
* 第四步:实例化SpringBootExceptionReporter.class,用来支持报告关于启动的错误
* 第五步:准备容器
* 第六步:刷新容器
* 第七步:刷新容器后的扩展接口

以上每一步的实现细节都可以写一篇博客来介绍,一开始理解springboot不需要纠结这么细枝末节,容易把自己绕进去,后续文章我也只是介绍主流程。

总结:

本文只是大体上介绍了一下springboot脚手架的设计思想,起到开篇的作用,后续文章会深入到细节来进行详细讲解,希望后续博客能够对大家springboot理解springboot脚手架起到一点帮助。

相关推荐
懒惰蜗牛1 分钟前
Day63 | Java IO之NIO三件套--选择器(下)
java·nio·选择器·selector·半包粘包·tcp缓冲区
A3608_(韦煜粮)6 分钟前
深入理解 Spring Boot 自动配置:原理、定制与最佳实践摘要
spring boot·自动配置·自定义starter·源码解析·条件注解·spring框架·java配置
JavaGuide8 分钟前
美团2026届后端一二面(附详细参考答案)
java·后端
小马爱打代码9 分钟前
SpringBoot + Quartz + Redis:分布式任务调度系统 - 从架构设计到企业级落地
spring boot·redis·分布式
打工人你好10 分钟前
如何设计更安全的 VIP 权限体系
java·jvm·安全
L.EscaRC17 分钟前
Spring IOC核心原理与运用
java·spring·ioc
摇滚侠30 分钟前
2025最新 SpringCloud 教程,Nacos-总结,笔记19
java·笔记·spring cloud
在逃热干面34 分钟前
(笔记)获取终端输出保存到文件
java·笔记·spring
爱笑的眼睛1135 分钟前
深入理解MongoDB PyMongo API:从基础到高级实战
java·人工智能·python·ai
笃行客从不躺平44 分钟前
遇到大SQL怎么处理
java·开发语言·数据库·sql