Spring Boot-介绍

1、什么是Spring Boot?

Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各类启动器,开发者能快速上手。java

Spring Boot提供了各类组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。git

Spring Boot不但能建立传统的 war 包应用,还能建立独立的不依赖于任何外部容器(如:tomcat)的独立应用,使用 java -jar 命令就能启动。同时,Spring Boot也提供了一个命令行工具来执行 Spring 的脚本。github

官方网站:https://spring.io/projects/spring-bootweb

GitHub源码:https://github.com/spring-projects/spring-bootspring

2、Spring Boot 的背景

了解 Spring Boot 必须先说说 Spring 框架!编程

在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大。后端

用过 Spring 框架的都知道 Spring 能流行是由于它的两把利器:IOC 和 AOP,IOC 能够帮助咱们管理对象的依赖关系,极大减小对象的耦合性,而 AOP 的切面编程功能能够更方面的使用动态代理来实现各类动态方法功能(如事务、缓存、日志等)。缓存

而要集成 Spring 框架,必需要用到 XML 配置文件,或者注解式的 Java 代码配置。不管是使用 XML 或者代码配置方式,都须要对相关组件的配置有足够的了解,而后再编写大量冗长的配置代码。tomcat

而后又有多少开发人员能精通这些配置呢?若是咱们只提供一些配置参数让框架能自动配置这些组件,那是否是 so easy?安全

基于简化 Spring 快速上手为目的,Spring Boot 框架诞生了!

3、Spring Boot 的设计目标

若是你不清楚 Spring 是干吗用的,那再来看看设计它的目标和初衷是什么!

一、为 Spring 应用开发提供一个更快、更容易上手的入门体验;

二、提供一系列在大型项目中常常用到的公共的非功能性特性,如:内嵌入服务器、安全、度量指标、健康检测、外部化配置;

三、零代码配置生成及零 XML 配置;

4、Spring Boot的优势

  • 独立运行

    Spring Boot并且内嵌了各类servlet容器,Tomcat、Jetty等,如今再也不须要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,全部的依赖包都在一个jar包内。

  • 简化配置

    spring-boot-starter-web启动器自动依赖其余组件,简少了maven的配置。

  • 自动配置

    Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其余配置。

  • 无代码生成和XML配置

    Spring Boot配置过程当中无代码生成,也无需XML配置文件就能完成全部配置工做,这一切都是借助于条件注解完成的,这也是Spring4.x的核心功能之一。

  • 应用监控

    Spring Boot提供一系列端点能够监控服务及应用,作健康检测。

5、Spring Boot的缺点

一、须要很是了解 Spring Boot 的核心技术原理,否则一旦遇到问题就很棘手。由于什么东西都集成了,自动配置化。这样,须要对配置信息很是熟悉,要找起问题来不是很容易。

二、从原始 Spring 项目很难平滑迁移至 Spring Boot 框架上来,由于有些历史老旧的 XML 配置没法经过 Java 来配置,还须要额外的 XML 文件就不是很完美。再好比,以前是独立的 Tomcat,什么参数都在线上配置好了,你改成内置的 Tomcat 就会遇到不少问题。