中三A105论坛

注册 登录
查看: 38|回复: 0

Spring Boot到底是什么

[复制链接]

111

主题

111

帖子

369

积分

中级会员

Rank: 3Rank: 3

积分
369
发表于 2024-3-5 11:20:51 | 显示全部楼层 |阅读模式
1.jpg
相信很多人都使用过或者听到过SpringBoot,那SpringBoot到底是什么,它是不是微服务,和SpringCloud是什么关系呢?
请往下看:
1、SpringBoot是什么?

从本质上来说,springboot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,它做了那些没有它你自己也会去做的Spring Bean配置。
SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。
2SpringBoot的诞生
2.jpg
SpringBoot是伴随着Spring4.0诞生的;
从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架;
SpringBoot帮助开发者快速启动一个Web容器;
SpringBoot继承了原有Spring框架的优秀基因;
SpringBoot简化了使用Spring的过程。
3、SpringBoot可以做什么?

最明显的特点是,让文件配置变的相当简单、让应用部署变的简单(SpringBoot内置服务器,并装备启动类代码),可以快速开启一个Web容器进行开发。
你不用再写这些样板配置了,可以专注于应用程序的逻辑,这些才是应用程序独一无二的东西。
4、SpringBoot所具备的特征有:

(1)独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
(2)简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
(3)自动配置
Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
(4)无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。
Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。
(5)应用监控
Spring Boot提供一系列端点可以监控服务及应用,做健康检测。
5、帮助我们解决了哪些问题

1) Spring Boot使编码变简单
3.jpg
4.jpg
声明一个依赖+实现一个方法 即可正常运行
2) Spring Boot使配置变简单
5.jpg
Spring由于其繁琐的配置,一度被人认为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。
Spring Boot更多的是采用Java Config的方式,对Spring进行配置。
3) Spring Boot使部署变简单
一键启动,java -jar XXXX.jar 不需要解压,并且不需要部署Tomcat等应用服务器,你需要的只有一个JDK
4) Spring Boot使监控变简单
采用spring-boot-start-actuator,直接以REST的方式,获取进程的运行期性能参数。
当然这些metrics有些是有敏感数据的,spring-boot-start-actuator为此提供了一些Basic Authentication认证的方案,这些方案在实际应用过程中也是不足的。
6SpringBoot的不足
6.jpg
Spring Boot作为一个微框架,离微服务的实现还是有距离的。
没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能,也需要与现有的监控对接。没有配套的安全管控方案,对于REST的落地,还需要自行结合实际进行URI的规范化工作。
7、那么SpringBoot不是什么呢

因为Spring Boot实在是太惊艳了,所以过去很多年的时间里有不少和它相关的言论。原先听到或看到的东西可能给你造成了一些误解。
首先,Spring Boot不是应用服务器。这个误解是这样产生的:Spring Boot可以把We b应用程序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。Spring Boot在应用程序里嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以此实现这一功能。但这是内嵌的Servlet容器提供的功能,不是Spring Boot实现的。
与之类似,Spring Boot也没有实现诸如JPA(JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。)或JMS(Java Message Service,Java消息服务)之类的企业级Java规范。它的确支持不少企业级Java规范,但是要在Spring里自动配置支持那些特性的Bean。例如,Spring Boot没有实现JPA,不过它自动配置了某个JPA实现(比如Hibernate)的Bean,以此支持JPA。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部