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 依赖。

3)添加依赖信息

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启动包、启动类启用定时、创建定时任务实现类。