Spring Boot是一个框架,一种全新的编程规范,它的产生简化了框架的使用,所谓简化是指简化了Spring 众多框架中所需的大量且烦琐的配置文件,所以 Spring Boot 是一个服务于框架的框架,服务范围是简化配置文件。从本质上来说,Spring Boot 其实就是 Spring框架的另一种表现形式。
01、什么是Spring Boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。使用Spring Boot框架可以做到专注于Spring应用的开发,无须过多关注样板化的配置。
在Spring Boot框架中,使用“约定优于配置(COC,Convention Over Configuration)”的理念。针对企业应用开发,提供了符合各种场景的spring-boot-starter自动配置依赖模块,这些模块都是基于“开箱即用”的原则,进而使企业应用开发更加快捷和高效。可以说,Spring Boot是开发者和Spring框架的中间层,目的是帮助开发者管理应用的配置,提供应用开发中常见配置的默认处理(即约定优于配置),简化Spring应用的开发和运维,降低开发人员对框架的关注度,使开发人员把更多精力放在业务逻辑代码上。通过“约定优于配置”的原则,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。
02、Spring Boot的优点
概括来说,Spring Boot主要有以下优势:
(1) 快速创建独立运行的Spring项目及与主流框架集成。
(2) 使用嵌入式的Servlet容器,应用无须打包成War包。
(3) starters自动依赖与版本控制。
(4) 大量的自动配置,从而简化开发,需要时也可修改默认值。
(5) 无须配置XML,无代码生成,开箱即用。
(6) 在准生产环境运行时应用监控。
(7) 与云计算的天然集成。
微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。而SpringBoot继承了Spring 的优良特性,与Spring一脉相承,而且支持各种REST API 的实现方式。
03、Spring Boot的主要特性
1●约定优于配置
Spring Boot遵循“约定优于配置”的原则,只需很少的配置,大多数情况直接使用默认配置即可。
2●独立运行的Spring应用
Spring Boot可以以jar包的形式独立运行。使用java -jar命令或者在项目的主程序中执行main方法运行Spring Boot应用(项目)。
3●内嵌Web容器
内嵌Servlet容器,Spring Boot可以选择内嵌Tomcat、Jetty等Web容器,无须以war包形式部署应用。
4●提供starter简化Maven配置
Spring Boot提供了一系列的starter pom简化Maven的依赖加载,基本上可以做到自动化配置,高度封装,开箱即用。
5●自动配置Spring
Spring Boot根据项目依赖(在类路径中的jar包、类)自动配置Spring框架,极大减少了项目的配置。
6●提供准生产的应用监控
Spring Boot提供基于HTTP、SSH、TELNET对运行的项目进行跟踪监控。
7●无代码生成和XML配置
Spring Boot不是借助于代码生成来实现的,而是通过条件注解来实现的。提倡使用Java配置和注解配置相结合的配置方式。很方便快捷。
04、Spring Boot环境准备
在开始学习Spring Boot前,应先准备好开发环境。本节将介绍如何安装JDK、IntelliJIDEA 及Apache Maven。
1●JDK 环境
建议使用JDK1.8及以上的版本,官方下载地址为https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。大家可以根据自己的需求选择合适的JDK安装包,这里不过多赘述。
2●开发工具IDEA
IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。
IntelliJ IDEA 在官网上这样介绍自己: IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。
在IntelliJ IDEA 的官方网站https://www.jetbrains.com/idea/download/#section=Windows下载IDEA。大家可以根据自己的需求选择合适的IDEA 版本,只要版本不过低即可。下载完成后,运行安装程序,根据提示安装即可。
3●安装与配置Maven
Maven是目前最流行的项目管理工具之一。Maven官方下载网址为http://maven.apache.org/download.cgi,大家可以根据自己的需求下载合适版本的Maven。虽然在IDEA 中已经包含Maven插件,但是我还是希望大家在工作中能安装自己的Maven插件,以此方便项目配置。
下载完成后解压,然后将安装路径(例如D:\java\apache-maven-3.3.9\bin)配置在环境变量path中。配置完成后,在命令窗口中执行: mvn -v,如果输出如图10-1所示的内容,表示Maven安装成功。
安装成功后,在IDEA 中配置Maven,具体步骤如下。
(1) 在安装目录(如: D:\java\apache-maven-3.3.9)下新建文件夹repository,用来作为本地仓库。
(2) 修改apache-maven-3.3.9→conf→settings配置文件,如图10-2所示。
■ 图10-2 settings.xml配置文件修改
(3) 在IDEA 界面中选择File→Settings,在窗口中搜索Maven选项,配置为自己的Maven,如图10-3所示。
05、Spring Boot的三种创建方式
Spring Boot本质上是一个Maven工程,下面介绍三种创建方式。
1●在线创建
在线创建是Spring Boot官方提供的一种创建方式,官网地址为https://start.spring.io/,打开如图10-4所示页面。
在页面中将这些信息填写完成后,单击GENERATE按钮生成模块并下载到本地,解压后使用IDEA 打开该项目即可使用。
2●通过 Maven创建
使用Maven创建Spring Boot项目,以IDEA 为开发工具,具体步骤如下。
(1) 创建一个普通Maven项目,如图10-5所示。
■ 图10-5 构建普通Maven项目
(2) 输入组织名称和模块名称,如图10-6所示。
(3) 创建完成后,在pom.xml文件中添加如下依赖。
<!--Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。 spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签。--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.4.RELEASE</version> <relativePath/><!-- lookup parent from repository --> </parent> <dependencies> <!--Spring Boot提供了非常多的starter启动器。spring-boot-starter-web支持全栈式 Web 开发,包括 Tomcat 和 spring-webmvc。--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
(4) 添加完成后,在java目录下创建一个名为App的启动类,代码如下:
@EnableAutoConfiguration //启用Spring的自动加载配置。 @RestController //相当于Controller +ResponseBody注解 public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } @GetMapping("/hello") public String hello(){ return "hello"; } }
最后执行main方法就可以启动一个Spring Boot项目了。
3●使用Spring Initializer快速创建
上述创建Spring Boot项目的两种方式都比较烦琐,推荐大家直接使用SpringInitializer的方式快速构建Spring Boot项目。这种方式不但可以生成完整的目录结构,还可以生成一个默认的主程序,从而节省时间。具体步骤如下。
(1) 创建项目时选择Spring Initializer,如图10-7所示。
■ 图10-7选择Spring Initializer构建Spring Boot项目
(2) 输入项目基本信息,如图10-8所示。
■ 图10-8 基本信息填写
(3) 接着选择需要添加的依赖,如图10-9所示。
(4) 选择项目创建的路径,如图10-10所示。
至此,Spring Boot项目创建完成。