本章概要
- Spring Boot 简介
- 开发第一个Spring Boot 程序
- Spring Boot 的简便创建方式
1.1 Spring Boot 简介
Spring Boot作为一个轻量级的容器,在Java EE开发中得到了广泛的应用,但是Spring 的配置繁琐臃肿,在和各种第三方框架进行整合时代码量都非常大,并且整合的代码大多是重复的,为了使开发者能够快速上手Spring,利用Spring框架快速搭建Java EE 项目,Spring Boot应运而生。
Spring Boot带来了全新的自动化配置解决方案,使用Spring Boot 可以快速创建基于Spring 生产级的独立应用程序。Spring Boot 中对一些常用的第三方库提供了默认的自动化配置方案,使得开发者只需要很少的Spring 配置就能运行一个完整的Java EE应用。Spring Boot 项目可以采用传统的方案打成war包,然后部署到Tomcat中运行。也可以直接打成可执行的jar包,这样通过java -jar命令就可以启动一个Spring Boot 项目。总体来说,Spring Boot主要有一下优势:
- 提供一个快速的Spring 项目搭建渠道
- 开箱即用,很少的Spring 配置就能运行一个Java EE项目
- 提供了生产级的服务监控方案
- 内嵌服务器,可以快速部署
- 提供了一系列非功能性的通用配置
- 纯Java配置,没有代码生成,也不需要XML配置
Spring Boot是一个“年轻”的项目,发展非常迅速,特别是在Spring Boot 2.0之后,许多API都有较大的变化,此处为基于2.0.4版本,因此需要Java8或9以及Spring Framework 5.0.8 REKEASE 或更高版本,同事构建工具的版本要求为Maven 3.2+ 或Gradle4。
1.2 开发第一个Spring Boot 程序
Spring Boot工程可以公国很多方式创建,最通用的方式莫过于使用Maven了,因为大多数的IDE都支持Maven。
1.2.1 创建Maven工程
1. 使用命令创建Maven工程(略)
2. 在Eclipse中创建Maven工程(略)
3. 使用IDEA创建Maven工程
步骤01:创建项目时选择Maven,但是不必选择项目骨架,直接单击Next按钮即可
步骤02:输入组织名称、模块名称、项目名称、目录位置、项目版本号等信息,单击Finish按钮完成项目创建
1.2.2 项目构建
1. 添加依赖
首先添加spring-boot-starter-parent 作为parent,代码如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
spring-boot-starter-parent是一个特殊的Starter,提供了一些Maven的默认配置,同时还提供了dependency-management,可以使开发者在引入其他依赖时不必输入版本号,方便依赖管理。Spring Boot 中提供的Starter非常多,这些Starter主要为第三方库提供自动配置,例如要开发一个Web项目,就可以引入一个Web的Starter,代码如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. 编写启动类
接下来创建项目的入口类,在Maven工程java目录下创建项目的包,包里创建一个App类,代码如下:
@EnableAutoConfiguration
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
代码解释:
- @EnableAutoConfiguration 注解标识开启自动化配置。由于项目中添加了spring-boot-starter-web依赖,因此在开启了自动化配置之后会自动进行Spring和Spring MVC的配置。
- 在Java项目的main方法中,通过SpringApplication中的run方法启动项目。第一个参数传入App.class,告诉Spring哪个是主要组件。第二个参数是运行时输入的其它参数。
接下来创建一个Spring MVC 中的控制器——HelloController,代码如下:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello spring boot !";
}
}
在控制器中提供一个"/hello"接口,此时需要配置包扫描才能将HelloController注册到Spring MVC 容器中,因此在App类上再添加一个注解@ComponentScan 进行包扫描,代码如下:
@EnableAutoConfiguration
@ComponentScan
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
也可以使用组合注解@SpringBootApplication 来代替@EnableAutoConfiguration 和 @ComponentScan,代码如下:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
1.2.3 项目启动
启动项目有三种不同的方式
1. 使用Maven命令启动(略)
2. 直接运行main方法
直接在IDEA中运行App类的main方法,就可以看到项目启动了,如图:
启动成功后,可以在浏览器中直接访问/hello接口,如图:
3. 打包启动
要将Spring Boot 项目打成jar包运行,首先需要添加一个plugin 到pom.xml中,代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后运行mvn命令进行打包
mvn package
打包完成后,在项目的target目录下会生成一个jar 文件,通过java -jar命令直接启动这个jar文件
1.3 Spring Boot 的简便创建方式
1.3.1 在线创建(略)
1.3.2 使用IDEA 创建(略)
提示:直接创建Spring Boot项目这个功能在社区版的IDEA上是不存在的。创建的时候选择Spring Initializr,如图: