1.SpringBoot是什么?
Spring Boot就是一个可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。
它是为了简化Spring应用初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要文件的配置工作。
2.SpringBoot不是什么?
- Spring Boot不是应用服务器
- Spring Boot可以把Web应用程
序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。Spring Boot
在应用程序里嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以此实现这一功能。但这是
内嵌的Servlet容器提供的功能,不是Spring Boot实现的
- Spring Boot可以把Web应用程
- Spring Boot 没有实现 JPA and JMS
- SpringBoot 的确支持不少企业级Java规范,Spring Boot没有实现JPA,不过它自动配置了某个JPA实现(比如Hibernate)的Bean,以此支持JPA。
- Spring Boot没有引入任何形式的代码生成
- 是利用了Spring 4的条件化配置特性,
以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置
- 是利用了Spring 4的条件化配置特性,
注:从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring
Bean配置
3.SpringBoot的优势?
四大核心:
- 自动配置
- 针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
- 起步依赖
- 向项目中添加依赖是件富有挑战的事。你需要什么库?它的Group和Artifact是什么?你需要
哪个版本?哪个版本不会和项目中的其他依赖发生冲突?
Spring Boot通过起步依赖为项目的依赖管理提供帮助。起步依赖其实就是特殊的Maven依
赖和Gradle依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制
的依赖。 - 简单来说SpringBoot会为我们项目自动添加jar包版本(org.springframework.boot:spring-boot-starter-web)。
- 向项目中添加依赖是件富有挑战的事。你需要什么库?它的Group和Artifact是什么?你需要
- 命令行界面 (Spring Boot CLI )
- Spring Boot CLI让只写代码即可实现应用程序成为可能。
- 说得简单一点,CLI能检测到你使用了哪些类,它知道要向Classpath中添加哪些起步依赖才
能让它运转起来。一旦那些依赖出现在Classpath中,一系列自动配置就会接踵而来,确保启用
DispatcherServlet和Spring MVC,这样控制器就能响应HTTP请求了。
- Actuator——健康检查
- Actuator提供在运行时检视应用程序内部情况的能力。安装了Actuator就能窥探应用程序的内部情况
了,包括如下细节:- Spring应用程序上下文里配置的Bean
- Spring Boot的自动配置做的决策
- 应用程序取到的环境变量、系统属性、配置属性和命令行参数
- 应用程序里线程的当前状态
- 应用程序最近处理过的HTTP请求的追踪情况
- 各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标
- Actuator提供在运行时检视应用程序内部情况的能力。安装了Actuator就能窥探应用程序的内部情况