Springboot源码结构预览「建议收藏」

Springboot源码结构预览「建议收藏」系列文章目录Springboot学习系列一、Springboot源码结构预览二、Springboot运行原理三、Springboot源码流程构造分析四、Springboot运行流程构造分析五、SpringbootWeb应用源码解析文章目录系列文章目录概述二、Springboot源码1.源码获取2.源码调试3.目录结构3.目录结构总结学习目标:学习内容:学习时间:学习产出:概述Springboot源码获取、调试、目录结构、设计理念、整体架构。二、Springboot源码1.源

大家好,又见面了,我是你们的朋友全栈君。

系列文章目录

Springboot学习系列
一、Springboot源码结构预览
二、Springboot运行原理
三、Springboot源码流程构造分析
四、Springboot运行流程构造分析
五、Springboot Web应用源码解析



概述

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Springboot源码获取、调试、目录结构、设计理念、整体架构。


二、Springboot源码

1.源码获取

源码地址:

 https://github.com/spring-projects/spring-boot

在这里插入图片描述

2.源码调试

通常使用“实例+debug”方法对Spring Boot源代码进行调试与追踪。创建入口类代码:

@SpringBootApplication
public class DemoApplication { 
   
    public static void main(String[] args) { 
   
        SpringApplication.run(DemoApplication.class, args);
    }
}

3.目录结构

spring-boot-project:Spring Boot核心项目代码,包含核心、工具、安全、文档、starters等项目。
spring-boot-tests:Spring Boot部署及集成的测试。

spring-boot-project目录是在Spring Boot 2.0版本发布后新增的目录层级,该模块包含了Spring Boot所有的核心功能。

模块 功能
spring-boot Spring Boot核心代码,也是入口类SpringApplication类所在项目,是本书重点介绍的内容。
spring-boot-actuator 提供应用程序的监控、统计、管理及自定义等相关功能。
spring-boot-actuator-autoconfigure Spring Boot自动配置核心功能,默认集成了多种常见框架的自动配置类等。
spring-boot-cli 命令工具,提供快速搭建项目原型、启动服务、执行Groovy脚本等功能。
spring-boot-dependencies 依赖和插件的版本信息。
spring-boot-docs 参考文档相关内容。
spring-boot-parent spring-boot-dependencies的子模块,是其他项目的父模块
spring-boot-properties-migrator Spring Boot 2.0版本新增的模块,支持升级版本配置属性的迁移
spring-boot-starters Spring Boot以预定义的方式集成了其他应用的starter集合
spring-boot-test 测试功能相关代码
spring-boot-test-autoconfigure 测试功能自动配置相关代码
spring-boot-tools Spring Boot工具支持模块,包含Ant、Maven、Gradle等构建工具

3.设计理念与目标

Spring所拥有的强大功能之一就是可以集成各种开源软件。Spring Boot本身并不提供Spring的核心功能,而是作为Spring的脚手架框架,以达到快速构建项目、预置三方配置、开箱即用的目的。

3.1设计理念

约定优于配置(Convention Over Configuration),又称为按约定编程,是一种软件设计范式,旨在减少软件开发人员需要做决定的数量,执行起来简单而又不失灵活。

Spring Boot的功能从细节到整体都是基于“约定优于配置”开发的,从基础框架的搭建、配置文件、中间件的集成、内置容器以及其生态中各种Starters,无不遵从此设计范式。Starter作为Spring Boot的核心功能之一,基于自动配置代码提供了自动配置模块及依赖,让软件集成变得简单、易用。与此同时,Spring Boot也在鼓励各方软件组织创建自己的Starter

3.2设计目标

Spring Boot框架的设计理念完美遵从了它所属企业的目标,为平台和开发者带来一种全新的体验:整合成熟技术框架、屏蔽系统复杂性、简化已有技术的使用,从而降低软件的使用门槛,提升软件开发和运维的效率。

4.Spring Boot的整体架构

Spring Boot的核心项目结构及功能在这里插入图片描述


总结

本讲述了Springboot源码架构。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136282.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)

    开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)QtCreator环境:使用QtCreator作为LinuxIDE,代替Vim:实现两台Linux电脑远程部署和调试(一台电脑有桌面系统,一台电脑无桌面系统)使用QtCreator作为LinuxIDE,实现CMake编译和单步调试在QtCreator中使用make构建,运行,调试通用C/C++项目使用QtCreator作为LinuxIDE,实现Nginx和Redis…

    2022年6月15日
    42
  • 论手机网站(wap)网页广告防屏蔽的方法

    论手机网站(wap)网页广告防屏蔽的方法智能手机的崛起,让现在的网站越来越重视移动端,随之而来的广告形式也越来越向移动端倾斜侧重;但是本君发现一个现象,现在各大手机浏览器厂商对移动端广告过滤越来越严格,几乎只要开启过滤,大部分广告是要被过滤的;所以现在的广告商开始研究如何避免被过滤呢?我的观点是,只要浏览器商家想过滤,可以做到100%过滤的,您想再多的招也是没用的!WHY?因为广告脚本一般是作为客户端表现,是要经过浏览器解析后才显示…

    2022年7月12日
    46
  • iOS事件机制,以及不同手势使用touchesBegan等表现形式

    iOS事件机制,以及不同手势使用touchesBegan等表现形式事件处理方法UIResponder中定义了一系列对事件的处理方法,他们分别是:–(void)touchesBegan:(NSSet )toucheswithEvent:(UIEvent

    2022年7月3日
    27
  • JAVA多线程实现的三种方式

    JAVA多线程实现的三种方式

    2022年1月20日
    53
  • 猴子吃香蕉编程题_2只小猴子摘了3根香蕉

    猴子吃香蕉编程题_2只小猴子摘了3根香蕉实验目的(1)熟悉谓词逻辑表示法;(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。实验内容房子里有一只猴子(即机器人),位于a处。c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过python语言编程实现猴子摘香蕉问题的求解过程。”’猴子摘香蕉问题的Python编程实现”’#全局变量ii=0defMonkey_go_box(x,y.

    2022年9月26日
    3
  • Java学习之文件io流篇

    Java学习之文件io流篇0x00前言在平时的一些开发中,普遍都会让脚本运行的时候,去存储一些脚本运行结果的数据,例如开发一个爬虫,这时候我们爬取下来的内容,就需要存储到本地,那么这时候就会用到

    2021年12月12日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号