当前位置: 首页 > 后端技术 > Java

SpringBoot成长故事一:你真的了解SpringBoot吗?

时间:2023-04-01 20:49:13 Java

众所周知,Spring是java中应用最为广泛的框架,而近几年SpringBoot的兴起,更是将Spring的应用性和便捷性提升到了一个新的高度。今天的第一节,让我们来了解一下SpringBoot给我带来了什么,它的核心特性是什么。当你了解一项新技术时,通常会先从一个介绍性的HelloWorld开始,然后阅读一些它的介绍性文档、书籍和视频来掌握它的基本用法。而SpringBoot已经广为java工程师所熟知,但其核心特性,不同人的理解还是有差异的。今天,我们就从官网入手,看看官方是如何定义它的特点和优势的。最后结合自己的思考,总结一下自己的理解。从官网了解SpringBoot。从官方https://spring.io/projects,我们可以看到下面对SpringBoot的介绍:SpringBoot简介:“从构建Spring应用开始,让你以最快的速度启动和运行Spring应用。”可见SpringBoot的本质就是为了更好更方便的使用Spring,这也是它诞生的初衷。这里要补充的是,程序员在写代码的时候,思路远比方法重要。所以我们理解代码最重要的是理解它的思想,而不是简单地使用它。框架无非是解决一系列场景问题的技术方案,有自己的适用场景。这就是思路,我们要掌握的是什么,而不是我掌握了多少框架。回到正题,我们通过官方,原因更多的是看创建SpringBoot的目的,SpringBoot框架解决了什么问题,有什么特点。那么站在一定的高度去理解SpringBoot,才能更好的学习它。这就是我要教给你的方法,我们继续看吧。官方是怎么介绍SpringBoot提供了哪些功能的呢?通过刚才官方的介绍,大家知道Springboot就是为了更方便的使用Spring,创建应用。那么它提供了哪些功能,让我们更好的使用Spring呢?这当然是作者给出的最佳答案。通常你可以通过一个技术的官方文档来了解它。SpringBoot的官方文档还是写的很好。可以参考:https://docs.spring.io/spring...官方文档很详细,就像一本书,我们如何找到自己想要的知识点呢?其实思路很简单。查找目录与阅读书籍或查看课程目录相同。首先,大致浏览一下目录,然后你就会知道你想去哪里。先上下文后细节的思想是我一直强调的。比如你想了解SpringBoot内核的哪些功能?首先在概述中,就是介绍一下它的大致功能,我们是在目录中找到的。这两章可能和功能介绍有关,如下图:大家可以全部打开看看。首先是DocumentationOverview,确实介绍了SpringBoot的特性,如下图所示:ThisDocumentationOverview,可以看出,主要是对SpringBoot功能的概括描述,第四点介绍CoreFeatures,也就是核心功能。这就是我们要找的,官方理解。核心功能主要包括:SpringApplication|外部配置|概况|记录。其次是MVC|嵌入式容器等等。参考文档中的另一个链接是对SpringBoot功能的描述特别详细。可以看到,左边的目录包含了SpringApplication、Profiles、Logging等功能的介绍。通过上面的概述和目录中的两个文档对SpringBoot功能的介绍,实际上已经介绍了SpringBoot的功能。需要大致了解一下官方为SpringBoot定义的功能,可以归纳如下:1)官方核心定义了一个SpringApplication的概念,为web应用实现了一个新的进程,支持嵌入一个web容器2)官方提供可伸缩的配置,方便的将各种技术与Spring集成3)提供各种方便的功能,例如Profile多环境配置,Logging灵活的日志组件插件,方便各种技术的使用等等。通过去官方文档找SpringBoot的核心功能,我们教会了大家一个很重要的思路,先上下文后细节的思路。这个很关键,后面我们会继续沿用这个思路。自己对SpringBoot功能的思考有了上面官方文档的一些介绍,我们再结合自己的理解,想想SpringBoot的功能给我们带来了什么。1、SpringBoot定义了一个新的web应用启动过程。首先也是最重要的一点是它引入了一个SpringApplication的概念,它实际上定义了一个新的web应用启动过程。大家可以回忆一下,在没有SpringBoot的时候,我们开发启动web应用的时候,主要流程如下:1)首先通过Spring集成一些SpringMVC/Struts2等web框架,其实质就是将DistpatherServlet/Listener集成到Tomcat的启动过程2)使用Maven等构建工具将开发好的工程打包成War包,丢到Tomcat的webApp目录下3)启动Tomcat,接受http、rpc等请求,交给创建的各种beanSpring处理请求。整体流程如下图所示:使用了SpringBoot,引入了一个SpringApplication的概念,定义了一个新的启动流程。主要步骤如下1.定义main函数入口2.自动组装外部配置,如starter3.创建SpringIOC容器4.启动tomcatweb容器启动新定义的web应用程序的过程变成如图所示下图:当然,SpringBoot也支持在不使用嵌入式容器的情况下,打包成war包丢进Tomcat中。功能。但是SpringBoot的其他功能还是很有用的,比如常说的自动装配配置。2、SpringBoot的自动装配配置,解决了Spring集成各种技术的复杂性。前面我们提到过,SpringBoot的核心思想是为了更好、更方便地使用Spring来构建web应用。那么Spring创建应用的痛点是什么?一个关键的问题是Spring集成各种技术的复杂性。还记得之前刚开始学Spring,然后自己集成SSH、SSM各种盒子。随着学习的框架和技术越来越多,Mybatis、Hibernate、Struts2、SpringMVC、Shiro、MySQL、ES、MongoDB、MQ等等。几乎每次学习使用另一种框架或技术时,都必须集成大量的配置。随着技术的应用越来越广泛,这是一个非常棘手的问题。我们以前都是自己集成这些框架。借助SpringBoot,我们可以通过自动启动依赖starter和自动装配配置来解决各种框架集成带来的复杂重复配置。如下图所示:借助SpringBoot,可以通过官方或自定义的starter自动依赖实现各种技术的自动组装和配置,大大降低了各种技术的集成和使用成本。当然,要使用SpringBoot的功能,就必须对自动装配配置的原理有一个清晰的认识和认识,才能很好的驾驭它,否则会带来更多的麻烦和问题。在此之后,我们将带大家详细分析一下SpringBoot的这些原理,让大家更好的掌握SpringBoot。3、SpringBoot提供了很多方便的功能和扩展点。在我的理解中,SpringBoot除了以上两个特点外,还有一些方便的功能和扩展点。比如官网提到的多环境配置Profile,日志组件的可插拔Logging,各种技术的便捷集成和使用等等,整个SpringBoot启动过程设置了很多扩展点。如下图所示:其实还有很多。有耐心的同学可以每天看一段SpringBoot的官方文档来理解,也可以跟着成长笔记一起分析,共同成长。当大家对SpringBoot的使用、原理甚至源码有了越来越多的了解后,希望大家都能成为SpringBoot的专家,精通SpringBoot。总结今天除了了解SpringBoot的功能特点外,更重要的是学习几个重要的思想。这是一个简短的总结。学习到的主要知识点:1.认识SpringBoot(如何从官网了解一个技术)1)官方核心定义了一个SpringApplication的概念,实现了web应用的新流程,支持自己嵌入一个web容器2)官方给出Expandable配置,方便各种技术与Spring集成3)提供各种方便的功能,比如Profile多环境配置,Logging灵活的日志组件插件,方便各种技术的使用等。2.SpringBoot的自己的思考功能。SpringBoot定义了一个新的web应用启动过程。SpringBoot的自动装配配置,解决了Spring集成各种技术的复杂性。SpringBoot提供了许多方便的功能和扩展点。如何从官网了解到一个功能技术(SpringBoot),学习了一些思路。学到的重点思想:1)在处理新知识、新技术时,始终抱着思前想后的思想,在不断的学习中反复思考。古语有云,学而不思则无,思而不学则无。那就是我的意思。其实,程序员在写代码的时候,也是如此。想法远比方法重要。所以不管是我们自己写代码还是看懂别人的代码。最重要的是了解它的思想,而不是简单地使用它,了解它的过程等等。2)先上下文后细节的思路,比如无论是看文档、书籍、代码、画图等,都可以遵循先上下文后细节的思路。