首页 » 早鸟快报 » 咨询 » 正文

经常听到SpringBoot,你知道SpringBoot到底是什么吗

放大字体  缩小字体 发布日期:2019-12-06  来源:来自互联网  作者:来自互联网  浏览次数:600
导读

Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,它做了那些没有它你自己也会去做的Spring Bean配置。 Spring Boot更多的是采用J…

相信很多人都使用过或者听到过SpringBoot,那SpringBoot到底是什么,它是不是微服务,和SpringCloud是什么关系呢?

请往下看:

1、SpringBoot是什么?

从本质上来说,springboot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,它做了那些没有它你自己也会去做的Spring Bean配置。

SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。

2、SpringBoot的诞生

  • 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使编码变简单

声明一个依赖+实现一个方法 即可正常运行

2) Spring Boot使配置变简单

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认证的方案,这些方案在实际应用过程中也是不足的。

6、SpringBoot的不足

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。

 
 
免责声明
• 
本文为会员免费发布,仅代表发布者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理。