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

  • 相关阅读:
    IDEA同步代码到Gitee
    学会这招,轻松掌握学校教学质量!
    吃透Chisel语言.29.Chisel进阶之通信状态机(一)——通信状态机:以闪光灯为例
    LeetCode刷题笔记【31】:动态规划专题-3(整数拆分、不同的二叉搜索树)
    同时在端口 80 上运行 Apache Tomcat 和 Apache HTTPD
    apt和dpkg的源码下载链接
    【C语言趣味教程】(3) 浮点类型:单精度浮点数 | 双精度浮点型 | IEEE754 标准 | 介绍雷神之锤 III 源码中的平方根倒数速算法 | 浮点数类型的表达方式
    spark shuffle过程源码解析
    es Elasticsearch 六 java api spirngboot 集成es
    MYSQL--JDBC优化
  • 原文地址:https://blog.csdn.net/wanghengwhwh/article/details/120271351