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

相关推荐
小溪学编程几秒前
Java InputStream 详解:从基础到实战
java·python·php
血小板要健康1 分钟前
队列 + 宽搜(BFS):二叉树层序遍历 算法总结
java·数据结构·笔记·算法·leetcode·宽度优先
A黄俊辉A27 分钟前
【无标题】
java
BestHeaker31 分钟前
跨企业接口对接:IQDS / CPK 数据解析与协作避坑指南(五)
java·服务器·前端
俊昭喜喜里1 小时前
C#中的func<>
java·前端·c#
highreport1 小时前
net报表工具对比:HighReport 与 FastReport
java·c#
xiaoqiMikko1 小时前
七条 advisory 各给了一个修复版,而一次修完的那个数字一条都没写
java·spring boot
vHelios1 小时前
【电商项目】短信测试遇到的问题与解决方案:InaccessibleObjectException报错、单元测试通过但未接收到验证码
java·微服务
气泡水好喝1 小时前
Java魔法探秘:从Java代码到CPU指令,一个方法调用的完整生命周期
java
气泡水好喝2 小时前
读《阿里巴巴Java开发手册》五年,这7条规约救了我太多次
java