21.2 使用 Spring Boot 构建应用

在本章剩余的内容中,我将会向你展现如何使用 Spring Boot 构建完整且符合现实要求(real-world)的应用程序。当然,“符合现实要求” 的定义标准会有些争议,对它的讨论超出了本章的范围。因此,与其在这里说构建符合现实要求的应用,还不如后退一步,说成我们所构建的应用程序比现实要求稍差一点,但是它能够代表使用 Spring Boot 所构建的更大型应用。

我们的应用是一个简单的联系人列表。它允许用户输入联系人信息(名字、电话号码以及 Email 地址),并且能够列出用户之前输入的所有联系人信息。

你可以自由选择使用 Maven 还是 Gradle 来构建应用程序,我更喜欢 Gradle,但是如果你喜欢 Maven 的话,我也将会列出所需的 Maven 代码。如下的程序清单展现了起始的 build.gradle 文件。开始的时候,依赖部分是空的,但是在这个过程中,我们将会使用依赖填充这部分的内容。

程序清单 21.1 Contacts 应用所需的 Gradle 构建文件
buildscript {
  repositories {
    mavenLocal()
  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.4.RELEASE")
  }
}
  
apply plugin: 'java'
apply plugin: 'spring-boot'
jar {
  baseName = 'contacts'
  version = '0.1.0'
}
 
repositories {
  mavenCentral()
}
  
dependencies {
}
  
task wrapper(type: Wrapper) {
  gradleVersion = '1.8'
}

注意,构建中包含对 Spring Boot Gradle 的 buildscript 依赖。稍后将会看到,这会帮助我们生成一个可执行的超级 JAR 文件(uber- JAR),这个文件中将会包含应用的所有依赖。

如果你更喜欢 Maven 的话,如下的程序清单展现了完整的 pom.xml 文件。

程序清单 21.2 Contacts 应用所需的 Maven 构建文件
<?xml versions"1.0" encodings"UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsis"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.habuma</groupId>
    <artifactId>contacts</artifactId>
    <version>0.1.0</version>
    <packaging>jar</packaging>
    
    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactld>spring-boot-starter-parent</artifactld>
      <version>l.1.4.RELEASE</version>
    </parent>
    
    <dependencies>
    </dependencies>
    
    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupld>
         <artifactId>spring-boot~maven-plugin</artifactId>
       </plugin>
     </plugins>
   </build>
</project>

与 Gradle 构建类似,这个 Maven 的 pom.xml 文件使用了 Spring Boot Maven 插件。这个 Maven 中的插件对应于 Gradle 插件,能够生成可执行的超级 JAR 文件。

同样需要注意的是,与 Gradle 构建不同,Maven 构架有一个 parent 项目。我们让项目的 Maven 构建基于 Spring Boot starter parent,这样的话,我们就能受益于 Maven 的依赖管理功能,对于项目中的很多依赖,就没有必要明确声明版本号了,因为版本号会从 parent 中继承得到。

按照 Maven 和 Gradle 项目的标准结构,完成后项目将会如下所示:

不要担心现在缺失 Java 和其他的资源文件。在开发 Contacts 应用的过程中,我们将会在下面的几个小节中创建这些文件,首先将会从构建应用的 Web 层开始。

Last updated