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

在这里插入图片描述
以下文章来源于公众号“程序员求职之路”

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

这篇文章我会带你了解 Spring Boot 的原理,帮助大家深入学习 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

在这里插入图片描述
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的维护工作变得很重

在这里插入图片描述
举个例子:

在这里插入图片描述
如果扫描到当前的标签,那么意味着当前的bean会被装载。
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

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容器管理的对象。
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述 扫码关注公众号 给你贴心有效的职业规划