从Spring到SpringBoot3的演进:缺陷、优化与最新实践要求

目录

[1. Spring框架的缺点](#1. Spring框架的缺点)

[2. 什么是SpringBoot](#2. 什么是SpringBoot)

[2.1. 自动配置](#2.1. 自动配置)

[2.2. 起步依赖](#2.2. 起步依赖)

[3. SpringBoot3介绍](#3. SpringBoot3介绍)

[4. 总结](#4. 总结)


前言:

从本文开始,我们就开始SpringBoot的学习

在这里大家帮助大家更好的理解和掌握SpringBoot3的学习

如果你想快速复习和回忆,可以直接跳到结尾的思维导图~~~

个人主页:艺杯羹

1. Spring框架的缺点

Spring是一个非常优秀的轻量级框架,以IOC(控制反转) 和**AOP(面向切面)**为思想内核,极大简化了JAVA企业级项目的开发

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。使用Spring进行项目开发需要在配置文件中写很多代码,所有这些配置都代表了开发时的损耗。

除此之外,Spring项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。比如Spring5.0以上只能使用Junit4.12以上的版本

XML 复制代码
<!-- Spring传统依赖配置示例(需手动匹配版本) -->
<dependencies>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.20</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.20</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.20</version>
    </dependency>
    
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

总结起来,Spring的缺点就是:

  1. 配置过于繁琐
  2. 引入的依赖过多,版本控制复杂

2. 什么是SpringBoot

两大核心功能:自动配置 ➕ 起步依赖

SpringBoot对Spring进行优化,是基于"约定大于配置"的思想

约定为什么大于配置?

因为我们在使用Spring的时候,有些操作,是我们程序员公认的,那么这个就是约定,由这个约定就可以预先装好这个配置,所以在SpringBoot里面有些是固定的
一句话:通过预定义一套业界公认的 "约定",来减少甚至消除重复的、样板式的配置,从而简化开发流程,提高效率

所以,SpringBoot只是对简化了Spring

SpringBoot是一个服务于框架的框架

它不是对Spring功能的增强,而是提供了一种快速使用Spring框架的方式 ,只是简化了而已

SpringBoot的优点:

  1. 配置简单
  2. 依赖引入简单
  3. 提供了一些大型项目的非功能特性,如嵌入式服务器,安全指标,健康监测等

2.1. 自动配置

SpringBoot项目自动提供最优配置,同时可以修改默认值满足特定的要求

2.2. 起步依赖

SpringBoot的依赖是基于功能的,而不是普通项目的依赖是基于JAR包的

SpringBoot将完成一个功能所需要的所有坐标打包到一起,并完成了版本适配,我们在使用某功能时只需要引入一个依赖即可

这里就体现的是我们程序员公认

3. SpringBoot3介绍

SpringBoot包含了12个月以来151个开发者的5700多次代码提交。这是自 2018年SpringBoot发布2.0以来,SpringBoot的第一次重大修订

当然使用SpringBoot是需要一定版本要求的:

工具 版本要求
IDEA 2021.2.1+
Java 17+
Maven 3.5+
Tomcat 10.0+
Servlet 5.0+
GraalVM(原生镜像功能) Community 22.3+
Native Build Tools(原生镜像功能) 0.9.19+

这里就要注意,要达到对应版本的要求

4. 总结

到此,就先告一段落,下篇文章,深入了解一下SpringBoot~~~

相关推荐
what丶k19 分钟前
深度解析:以Kafka为例,消息队列消费幂等性的实现方案与生产实践
java·数据结构·kafka
星火开发设计23 分钟前
C++ 输入输出流:cin 与 cout 的基础用法
java·开发语言·c++·学习·算法·编程·知识
毕设源码-邱学长32 分钟前
【开题答辩全过程】以 基于Springboot的酒店住宿信息管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
仟濹1 小时前
【Java加强】1 异常 | 打卡day1
java·开发语言·python
AllData公司负责人1 小时前
【亲测好用】实时开发平台能力演示
java·c语言·数据库
pcm1235671 小时前
设计C/S架构的IM通信软件(3)
java·c语言·架构
咖啡啡不加糖1 小时前
Grafana 监控服务指标使用指南:打造可视化监控体系
java·后端·grafana
€8111 小时前
Java入门级教程26——序列化和反序列化,Redis存储Java对象、查询数据库与实现多消费者消息队列
java·拦截器·序列化和反序列化·数据库查询·redis存储java对象·多消费者消息队列
多多*2 小时前
Mysql数据库相关 事务 MVCC与锁的爱恨情仇 锁的层次架构 InnoDB锁分析
java·数据库·windows·sql·oracle·面试·哈希算法
gAlAxy...2 小时前
SpringBoot Servlet 容器全解析:嵌入式配置与外置容器部署
spring boot·后端·servlet