Spring Boot 构建过程
本章主要介绍 Spring Boot 项目的详细构建步骤以及配置文件的解析。
1. 创建 Spring Boot 项目
Spring Boot 官方提供了使用 Spring initializer 构建一个 Spring Boot 的 Web 项目的工具。
1)打开工具网站
在浏览器中打开网站 http://start.spring.io/。
2)填写项目信息
选择 Project 构建类型,默认为 Maven Project,还可以选择 Gradle Project。
选择开发语言,默认为 Java,另外也支持 Kotlin 和 Groovy。
选择 Spring Boot 版本,没有特殊要求的话,直接使用默认即可。
填写项目信息 Project Metadata,包括 Group,Name,Package name,打包类型,JDK 版本等。
我们的案例中直接使用了默认配置。
3)添加依赖信息
网站右边可以选择添加依赖包。我们如果要开发 Web 项目,必须添加 Spring Web 依赖。
点击 Dependencies 的 ADD DEPENDENCIES 按钮,选择 Spring Web 依赖。
4)生成 Spring Boot 项目
点击下方的 GENERATE,生成项目包 zip 文件。案例默认为 demo.zip,解压后生成一个简单的 Spring Boot 项目。
2. 项目文件组成
生成的项目解压后,可以使用 Ellipse 导入项目,或者使用 IDEA 直接打开项目。
项目中有个 src 目录,用于存储源代码。里面主要有三个子目录:
- src/main/java 存放 Java 源代码。
- src/main/resouces 存放 Web 静态文件、模板文件,比如 html、css、js 或者图片文件。
- test/java 存放单元测试文件。
项目中有两个重要文件:
- DemoApplication.java 它是项目启动类。
- pom.xml,这是 Maven 构建配置文件。
3. Spring Boot 启动入口点
Spring Boot 是通过实例化 SpringApplication 来启动整个应用程序,项目中的启动类使用 @SpringBootApplication 进行注释。
我们的范例中 DemoApplication 类使用了 @SpringBootApplication 进行了注释,它是项目启动类,其中的 main 函数是应用程序的入口点。
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
4. Maven 配置文件 pom.xml
pom.xml 文件的内容解析:
1)Spring Boot 继承默认配置
<!-- 从 Spring Boot 继承默认配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <parent>
Maven 用户可以继承 spring-boot-starter-parent 项目以获取合适的默认值,父项目提供了以下功能:
- Java 1.8 作为默认编译器级别。
- 源代码使用 UTF-8 编码。
- 依赖管理部分继承自 spring-boot-dependencies 的 POM,允许您省略常见依赖的
标签。 - 合理的资源过滤。
- 合适的插件配置(exec plugin、Git commit ID、shade)。
- 针对 application.properties 和 application.yml 资源的合理过滤,包括特定 profile 的文件(例如 application-foo.properties 和 application-foo.yml)。
Spring Boot 项目配置继承 spring-boot-starter-parent,只需要按以上方式设置 parent。
2)Spring Boot Maven 插件
Spring Boot 包括了一个 Maven 插件,它可以将项目打包成一个可执行 jar。如果要使用它,请将插件添加到您的 <plugins> 中:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
3)Spring Boot 依赖
Spring Boot 依赖包列表:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- spring-boot-starter-web:支持 Web 服务功能包。
- spring-boot-starter-test:支持单元测试功能包。
定时任务是指系统在固定的时间或者时间间隔,执行指定的任务。定时任务的实现方式:crontab、Timer、ScheduledExecutorService、Spring Task、Quartz。基于 Spring Boot 的定时任务:使用 Spring Boot 自带的定时任务,只需要添加相应的注解就可以实现。包括:导入SpringBoot启动包、启动类启用定时、创建定时任务实现类。