【二】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脚手架起到一点帮助。

相关推荐
橙子199110167 分钟前
Kotlin 中的 Unit 类型的作用以及 Java 中 Void 的区别
java·开发语言·kotlin
yours_Gabriel14 分钟前
【登录认证】JWT令牌
java·开发语言·redis
为美好的生活献上中指19 分钟前
java每日精进 5.11【WebSocket】
java·javascript·css·网络·sql·websocket·网络协议
qq_141826973226 分钟前
python通过curl访问deepseek的API调用案例
java·数据库·python
lyw20561928 分钟前
微服务八股(自用)
java·开发语言
液态不合群36 分钟前
理解 C# 中的各类指针
java·开发语言·c#
一只码代码的章鱼38 分钟前
Java Spring MVC -01
java·spring·mvc
Persistence___1 小时前
SpringBoot中的拦截器
java·spring boot·后端
嘵奇1 小时前
Spring Boot 跨域问题全解:原理、解决方案与最佳实践
java·spring boot·后端
黄雪超1 小时前
JVM——方法内联之去虚化
java·开发语言·jvm