深入解析spring Boot原理-提升你的内功

特邀导师:MIC

10余年Java EE从业经验,曾就职于平安、大众点评、挖财等互联网金融公司,《Spring Cloud Alibaba微服务原理与实战》作者。

参与项目:平安支付壹钱包、上海挖财挖财宝项目

很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它好用以及天然微服务友好。毫不夸张,Spring Boot 是 Java 后端领域最最最重要的技术之一,熟练掌握它对于 Java 程序员至关重要。

这篇文章我会带你了解 Spring Boot 的原理,帮助大家深入学习 Spring Boot。

01什么是spring Boot?

Spring Boot提供了快速构建Spring Dramework应用的框架。其设计目的是用来简化Spring应用初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

Spring Boot是如何简化的?约定优于配置,通过约定的方式来减少配置,从而提高开发效率。Spring Boot内核->(Spring Framework>约定优于配置之后)

约定优于配置的体现

①默认的Maven结构,以及默认的打包方式

②默认的配置文件application.properties

③Starer的相关jar包依赖

④Web默认包含Spring-mvc以及内置tomcat容器

⑤部署到tomcat

如何没有Spring Boot

①引入jar包

②修改web.xml,添加监听和拦截

③创建spring mvc核心配置文件dispatcher-servlet.xml

④创建controller

⑤部署到tomcat

02深度思考或简化背后的原理

Spring注解驱动的发展过程从XML配置时代到注解驱动时代 。具体如下所示:

Spring 1.x注解驱动启蒙时代

Spring 1.x 支持Annotation,虽然框架层面均已经支持@managedResource和@Transactional(事务注解)等注解,但主要还是以XML配置为准。

Spring 1.x 提供了什么功能?

提供Spring容器来托管Bean对象——Bean通过描述一个对象,Spring会加载这个配置,并且进行初始化并保存。

Spring 2.x注解驱动过渡时期

Spring 2.x在Anonotation支持方面添加了新的成员,@Required、数据相关的@Repository及AOP相关的@Aspect等,但同时提升了XML配置能力,即“可扩展的XML编写”。xml+注解的方式,无法完全脱离xml。

缺陷:bean的维护工作变得很重。

Spring 2.x提供注解:

@Reqired

@Repository

@Aspect

@Component

@Service

@Controller

举个例子:

如果扫描到当前的标签,那么意味着当前的bean会被装载。

Spring 3.x注解驱动黄金时代

Spring 3.x是一个里程牌式的时代,在3.0时代中除了提升Spring模式注解“派生”的层次性,并通过注解完全取代传统的XML形式的描述。替换XML配置方式,引入配置类注解@Configuration。

Spring 3.x提供注解:

@Configuration

@CompomentScan

@Import-导入

Spring 4.x注解驱动完善时代

Spring 4.x之后,引入条件注解@Conditional。通过自定义Condition实现配合,弥补了之前版本条件化装配的短板,4.0开始Profile反过来通过@Conditional实现。

Spring 5.x注解驱动成熟时代

Spring 5.x作为Spring Boot2.0的底层,注解驱动的性能提升方面不是很明显。在Spring Boot应用场景中,大量使用@ComponentScan扫描,导致Spring模式的注解解析时间耗时增大。因此,5.0时代引入@Indexed,为Spring模式注解添加索引。

注解驱动的意义是简化Bean的原理,描述一个需要被Spring IOC容器管理的对象。

03总结

Spring Boot 是 Java 后端领域中经常使用的技术,希望这篇文章能让你掌握Spring Boot 原理,成为更优秀的Javer。

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

推荐阅读更多精彩内容