家喻户晓,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 外围提供哪些性能。首先在overview 中,就是介绍它的大体性能
而 在目录 中咱们找到了,两个章节可能和介绍性能无关,如下图:
你能够都关上看看,首先是 Documentation Overview,外面确实有介绍 SpringBoot 性能特点,如下图所示:
这个 Documentation Overview,能够看进去,次要是对 SpringBoot 性能一个是概要形容,其中第 4 点中,介绍了 Core Featues,也就是外围性能。
这个就是咱们想找的,官网了解。外围性能中次要有:SpringApplication | External Configuration | Profiles | Logging。其次还有 MVC | Embedded Containers 等。
参考文档中另一链接,是对 SpringBoot 性能一个特地具体的形容。能够看到,右边目录有 SpringApplication 的介绍,Profiles、Logging 等各个性能介绍。
通过下面的 overview 和目录中的两篇文档对 SpringBoot 性能的介绍,其实曾经介绍了 SpringBoot 的性能了。你须要大体对官网给 SpringBoot 定义的性能,能够概括如下:
1)官网外围定义了一个 SpringApplication 的概念,实现 web 利用的新流程,反对本人内嵌了一个 web 容器
2)官网给出了可扩大配置,便捷的和 Spring 整合各种技术
3)提供了各种便捷的性能,如 Profile 多环境配置,Logging 灵便的日志组件插拔、各种技术的便捷应用等等。
咱们通过去官网文档寻找 SpringBoot 外围性能,教给大家了很重的一个思维,先脉络后细节的思维。这个十分要害,这个思维之后咱们会始终用到的。
本人对 SpringBoot 性能的思考
有了下面的官网文档的一些介绍,上面咱们来联合本人的了解,思考下 SpringBoot 的性能到底给咱们带来了什么。
1、SpringBoot 定义了新的 web 利用启动流程
首先第一点最重要就是,引入了一个 SpringApplication 的概念,它这个概念理论是定义了一套新的 web 利用启动流程。
你能够回忆一下,在没有 SpringBoot 的时候,咱们开发和启动 web 利用时,次要流程如下:
1)通过 Spring 先整合好一些 web 框架如 SpringMVC/Struts2,实质是整合 DistpatherServelt/Listener 到 Tomcat 的启动流程中
2)通过构建工具如 Maven 将开发好的我的项目打成一个 War 包,丢入到 Tomcat 的 webApp 目录
3)启动 Tomcat,承受 http、rpc 等申请交给 Spring 创立的各种 bean 来解决申请。
整体流程如下图所示:
而应用了 SpringBoot,它引入了一个 SpringApplication 的概念,定义了一套新的启动流程,次要有如下几步
1、定以 main 函数入口
2、主动拆卸内部配置,如 starter 等
3、创立 Spring IOC 容器
4、启动 tomcat web 容器
新定义的 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)官网给出了可扩大配置,便捷的和 Spring 整合各种技术
3)提供了各种便捷的性能,如 Profile 多环境配置,Logging 灵便的日志组件插拔、各种技术的便捷应用等等。
2、本人对 SpringBoot 性能的思考
SpringBoot 定义了新的 web 利用启动流程、SpringBoot 的主动拆卸配置解决了 Spring 集成各种技术的复杂性、SpringBoot 提供了很多便当的性能和扩大点
通过如何从官网意识一个技术 (SpringBoot) 的性能, 学习了一些思维。
学习到的要害思维:
1)看待新常识和新技术,永远要抱着思考的想法,在一直学习中重复思考。古话说的好,学而不思则罔,思而不学则殆。就是这个意思。其实程序员写代码的时候,也一样,思维远远比办法重要。所以咱们本人写代码也好,了解他人代码也好。最要害的是了解它的思维,而不是仅仅简略的应用它,理解它的流程之类的。
2)先脉络后细节的思维,比方无论是浏览文档、书籍、代码、画图等等所有,都能够依照先脉络后细节的思维来。