SpringBoot成长记1:你真的懂SpringBoot吗?

SpringBoot成长记1.png

众所周知,Spring是java中应用最为广泛的框架,而近些年来SpringBoot的兴起,让Spring的应用和便利更上一层楼。

今天我们第一节,就来认识下SpringBoot给我带来什么,它的核心特点是哪些。

认识一个新技术的时候,通常是从一个入门的HelloWorld开始,之后阅读它的一些入门文档和书籍、视频,从而掌握它的基本使用。

而SpringBoot已经广为java工程师所周知了,但是它核心的特点,不同人的认识还是有所不同。今天,我们就从官网出发,看看官方是定义它的特点和优势的。

最后我结合自己的思考,总结下自己的理解。

从官网开始认识SpringBoot

从官方https://spring.io/projects 我们可以看到如下对SpringBoot的介绍:

file

SpringBoot介绍:“从构建Spring应用程序出发,让您尽可能快的启动运行Spring应用程序。” 可以看到SpringBoot本质是为了更好的、更便利的使用Spring,这个是它诞生的初衷。

这里我要额外说一点的是,程序员写代码的时候,思想远远比方法重要。所以我们理解代码最关键的是理解它的思想,而不是仅仅简单的使用它。框架无非是解决了一系列场景问题的技术方案而已,有各自的适用场景。这个就是思想,才是我们要掌握的,而不是说我掌握了多少个框架。

回归正题,我们通过官方,之所以更多的是要看看它创作SpringBoot的目的,SpringBoot的框架解决了什么问题,特点是什么。之后站在一定高度去理解SpringBoot,才能更好地学习它。这个是我想要教给大家的方法,让我们继续来看。

官方如何介绍SpringBoot提供了哪些功能?

刚才通过官方的介绍,你知道了Springboot的是为了更好的便利的使用Spring,创建应用程序。那它提供了什么功能,让我们更好的使用Spring呢?

这个当然是作者给出的回答最好了。通常你可以通过一个技术的官方文档来了解它。SpringBoot的官方文档,编写的还是非常好的。你可以参考:https://docs.spring.io/spring-boot/docs/current/reference/html/

官方文档是非常详细的,就像一本书一样,我们怎么找到我们想要的知识点呢?其实思路很简单,找下目录,就和我们看书一样,或者看课程目录一样,先大体过一下目录,就知道自己想要的只是在哪里了。先脉络后细节的思想是我一直在强调的。

比如我么你想要找SpringBoot核心提供哪些功能。首先在overview中,就是介绍它的大体功能

file

在目录中我们找到了,两个章节可能和介绍功能有关,如下图:

file

你可以都打开看看,首先是Documentation Overview,里面的确有介绍SpringBoot功能特点,如下图所示:

file
file

这个Documentation Overview,可以看出来,主要是对SpringBoot 功能一个是概要描述,其中第4点中,介绍了Core Featues,也就是核心功能。

这个就是我们想找的,官方理解。核心功能中主要有:SpringApplication | External Configuration | Profiles | Logging。其次还有MVC | Embedded Containers等。

file

参考文档中另一链接,是对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来处理请求。

整体流程如下图所示:

file

而使用了SpringBoot,它引入了一个SpringApplication的概念,定义了一套新的启动流程,主要有如下几步

1、定以main函数入口
2、自动装配外部配置 ,如starter等
3、创建Spring IOC容器
4、启动tomcat web容器

新定义的web应用启动的流程变成了如下图所示:

file

当然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,自动装配配置,来解决各种框架整合带来的复杂、重复的配置。如下图所示:

file

有了SpringBoot之后,可以通过官方或者自定义一些starter起步自动依赖,来实现各种技术的自动装配配置,大大减少了各种技术的整合和使用成本。

当然,使用SpringBoot这个功能,你一定要对自动装配配置的原理有清晰的理解和认识,这样才能驾驭了好它,不然反而会带来更多的麻烦和问题。这个之后我们详细带大家分析SpringBoot的这些原理的,让大家更好的可以掌握SpringBoot。

3、SpringBoot提供了很多便利的功能和扩展点

在我的理解中,SpringBoot除了上述的两个特点外,剩下的就是它的一些便利的功能和扩展点了。比如官网中提到的多环境配置Profile、日志组件的可插拔Logging、各种技术的便捷整合使用等等,还有整个SpringBoot的启动过程设置了许多扩展点。如下图所示:

file

其实还有很多,有耐心的同学可以每天看一小节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)先脉络后细节的思想,比如无论是阅读文档、书籍、代码、画图等等一切,都可以按照先脉络后细节的思想来。

本文由博客一文多发平台 OpenWrite 发布!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容