Spring Boot简介
Spring 框架从诞生以来就是一款非常优秀的框架,随着其发展,几乎集成了各种第三方中间件。当开发一个大型的企业应用项目时,需要很多配置文件,此时集成第三方工具包时变得非常麻烦,这也是 Spring 框架被吐槽最多的一点。
Pivotal 公司也意识到了 Spring 框架的这些问题,所以启动了 Spring Boot 的开发,目的是减少开发过程中的配置,而且还可以生成各种 Starter 工具包,以方便集成第三方工具包。基于这两个方面的改进,使得 Spring Boot 迅速流行起来。
完成以上操作之后,还需要将其部署到 Tomcat 服务器上。如果使用 Spring Boot 框架进行开发,会让一切变得非常简单,只需要依赖一个 spring-boot-starter-web 即可完成。
Spring Boot 不是对 Spring 框架功能上的增强,而是提供了一种快速使用 Spring 的方式。Spring Boot 的主要特性如下:
下面使用 Spring 官网提供的 Spring Initializr 工具初始化一个 Spring Boot 工程,步骤如下:
(1)登录 Spring 官网 https://start.spring.io/,在 Project 下选择 Maven Project 选项,在 Language 下选择 Java 选项,在 Spring Boot 下选择 2.3.3 选项,然后在 Project Metadata 栏中依次设置 Group、Artifact、Name、Description、Package name、Packaging、Java 等信息,如图 1 所示。
(2)设置完成后单击右侧的 ADD DEPENDENCIES…CTRL+B 按钮,添加 Spring Web 依赖包,如图 2 所示。

图2 添加Spring Web依赖包
(3)单击 GENERATE CTRL+047-3 按钮,即可完成项目的下载,如图 3 所示。
图3 生成项目
(4)解压 spring-boot-example.zip 包,导入开发工具,然后新建 HiController 类,代码如下:
Spring Boot 提供了很多 Starter 用于自动依赖并进行版本控制的 JAR 包,而且 Spring Boot 在配置上相比 Spring 要简单许多,其核心在于只需要引入官方提供的 Starter 便可以直接使用,免去了各种复杂的配置。
Spring Boot 官方对 Starter项目的定义是有要求的,通常命名为 spring-boot-starter-{name},如 spring-boot-starter-web,对于非官方的 Starter 命名应遵守 {name}-spring-boot-starter 的格式。
下面通过一个具体的示例来演示创建一个 Starter 项目的过程。
(1)创建一个名为 biz-spring-boot-starter 的 MAVEN 工程,并且在 pom 文件中添加依赖,具体代码如下:
声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
Pivotal 公司也意识到了 Spring 框架的这些问题,所以启动了 Spring Boot 的开发,目的是减少开发过程中的配置,而且还可以生成各种 Starter 工具包,以方便集成第三方工具包。基于这两个方面的改进,使得 Spring Boot 迅速流行起来。
Spring Boot的特性
在采用 Spring MVC 框架实现一个后端接口服务应用时,需要依赖 spring-web、spring-context、spring-beans、spring-aop、spring-aspects、spring-core 和 spring-webmvc 等相关模块,同时还需要声明 web.xml、dispatcher-servlet.xml 等配置文件。完成以上操作之后,还需要将其部署到 Tomcat 服务器上。如果使用 Spring Boot 框架进行开发,会让一切变得非常简单,只需要依赖一个 spring-boot-starter-web 即可完成。
Spring Boot 不是对 Spring 框架功能上的增强,而是提供了一种快速使用 Spring 的方式。Spring Boot 的主要特性如下:
- 提供了各种 Starter。这些 Starter 可以自动依赖与版本控制相关的工具包。同时 Spring Boot 还可以让开发人员自定义 Starter,即 Starter 是可定制化的。各种第三方工具包都可以用 Starter 来定制,可以减少版本的冲突问题。
- 简化了 Spring 框架的开发流程。Spring Boot 提供了更佳的入门体验,可以快速构建独立运行的 Spring 应用程序。
- 提供了大量的自动配置,简化了开发过程,不需要配置 XML,没有代码生成,开箱即用,还可以通过修改默认值来满足特定业务的需求。
- 通过内嵌的 Servlet 容器,如 Tomcat、Jetty 或 Undertow 等部署接口服务,应用无须打 WAR 包,即可以 JAR 包的形式运行。
- 提供了应用监控、健康检查及安全指标等功能。
- 适合微服务开发,天然适合与云计算结合。通过与 Spring Cloud 家族集成,可以快速开发微服务应用。
快速创建Spring Boot应用
创建 Spring Boot 应用有多种方式,如将 Spring Tool Suite 插件集成到 Eclipse 等开发工具中,也可以下载安装 Spring Boot CLI 执行脚本,或使用Spring Initializr 工具等。下面使用 Spring 官网提供的 Spring Initializr 工具初始化一个 Spring Boot 工程,步骤如下:
(1)登录 Spring 官网 https://start.spring.io/,在 Project 下选择 Maven Project 选项,在 Language 下选择 Java 选项,在 Spring Boot 下选择 2.3.3 选项,然后在 Project Metadata 栏中依次设置 Group、Artifact、Name、Description、Package name、Packaging、Java 等信息,如图 1 所示。
图1 使用Spring Initializr工具构建Spring Boot工程


(2)设置完成后单击右侧的 ADD DEPENDENCIES…CTRL+B 按钮,添加 Spring Web 依赖包,如图 2 所示。

图2 添加Spring Web依赖包
(3)单击 GENERATE CTRL+047-3 按钮,即可完成项目的下载,如图 3 所示。

(4)解压 spring-boot-example.zip 包,导入开发工具,然后新建 HiController 类,代码如下:
@RestController @RequestMapping("/hi") public class HiController { @GetMapping("/springBoot") public String hi(){ return "hi spring boot!"; } }(5)直接运行 SpringBootExampleApplication 类。启动成功后,在浏览器中输入 http://localhost:8080/hi/springBoot,将显示“hi spring boot!”。这样,一个简单的 Spring Boot 应用便创建成功了。是不是特别简单?
Spring Boot Starter简介
上面我们新建了一个应用程序,只依赖 spring-boot-starter-web 包就可以开发出一个后端接口服务。Spring Boot 提供了很多 Starter 用于自动依赖并进行版本控制的 JAR 包,而且 Spring Boot 在配置上相比 Spring 要简单许多,其核心在于只需要引入官方提供的 Starter 便可以直接使用,免去了各种复杂的配置。
Spring Boot 官方对 Starter项目的定义是有要求的,通常命名为 spring-boot-starter-{name},如 spring-boot-starter-web,对于非官方的 Starter 命名应遵守 {name}-spring-boot-starter 的格式。
下面通过一个具体的示例来演示创建一个 Starter 项目的过程。
(1)创建一个名为 biz-spring-boot-starter 的 MAVEN 工程,并且在 pom 文件中添加依赖,具体代码如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:// maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0. xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springboot.starter</groupId> <artifactId>biz-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>compile</scope> </dependency> </dependencies> </project>(2)新建一个配置文件读取类 BizProperties,代码如下:
//配置属性 @Data @ConfigurationProperties(prefix="hi") public class BizProperties { private String name; }(3)新建 Service类BizService,代码如下:
//声明BizService类 public class BizService { public String name; public BizService(String name) { this.name = name; } public String say() { return "hi " + this.name; } }(4)新建自动配置类 BizAutoConfiguration,代码如下:
//配置类,创建BizService对象 @Configuration @EnableConfigurationProperties(BizProperties.class) //程序需要配置hi.name属性才能生效 @ConditionalOnProperty("hi.name") public class BizAutoConfiguration { @Bean public BizService bizService(BizProperties bizProperties) { //创建BizService return new BizService(bizProperties.getName()); } }
注意:@ConditionalOnProperty("hi.name")注解表示只有配置文件中有hi.name属性时才自动配置Bean对象BizService。
(5)在 resources/META-INF 下添加 spring.factories 指定的自动装配类,配置如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.spring.boot.configuration.BizAutoConfiguration
hi.name=Spring Boot
(7)改造 HiController 类,自动注入 BizService,代码如下://改造HiController @RestController @RequestMapping("/hi") public class HiController { @Resource private BizService bizService; @GetMapping("/springBoot") public String hi(){ return bizService.say(); } }(8)重新启动应用,在浏览器中访问 http://localhost:8080/hi/springBoot,将显示“hi Spring Boot!”。
声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。