搭建属于自己的Spring Initializr

前言

Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构。虽然不能生成应用程序代码,但它能为你提供一个基本的项目结构,以何种编程语言(Java,Kotlin,Groovy)构建的Maven或Gradle构建说明文件。你只需要写应用程序的代码就好了。

Spring Initializr 有几种用法。

  1. 通过Web界面使用。
  2. 通过Spring Tool Suite使用。
  3. 通过IntelliJ IDEA使用。
  4. 使用Spring Boot CLI使用。

本例主要讲解Web界面和IntelliJ IDEA的使用。

搭建本地start.spring.io

前提条件

确保本地已安装maven环境变量且settings.xml已添加aliyun

1
2
3
4
5
6
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

下载源代码

1
git clone https://github.com/spring-io/start.spring.io.git

构建

1
mvn clean install -DskipTests

时间略长,请耐心等待,会安装nodeyarn依赖

本地运行应用程序

1
2
cd 项目目录
mvn spring-boot:run

然后访问 http://localhost:8080/

通过Spring Initializr的Web界面

要使用Spring Initializr,最直接的办法就是用浏览器打开http://start.spring.io,你应该能看到以下一个表单,由于上面我们已经在本地搭建好了Spring Initializr也可以直接访问http://localhost:8080/ 查看以下表单

表单的左侧上方选项是,你想用Maven还是Gradle来构建项目,何种编程语言来编写代码,以及使用Spring Boot的哪个版本。程序默认生成Maven项目,并使用Spring Boot的最新版本(非里程碑和快照版本),但你也可以自由选择其他选项。

表单的左侧下方是,你指定项目的一些基本信息。最起码你要提供项目的Group、Artifact、项目名称、项目描述、报名、打包方式和依赖的Java版本。这些 信息是用来生成Mavenpom.xml文件(或者Gradlebuild.gradle文件)的。

表单右侧要你指定项目依赖,最简单的方法就是在文本框里键入依赖的名称。随着你的输入会出现匹配依赖的列表,选中一个(或多个)依赖,选中的依赖就会加入项目。

填完表单,选好依赖,点击Generate按钮,Spring Initializr就会为你生成一个项目。浏览器将会以ZIP文件的形式(文件名取决于Artifact字段的内容)把这个项目下载下来。根据你的选择,ZIP文件的内容也会略有不同。不管怎样,ZIP文件都会包含一个极其基础的项目,让你能着手使用Spring Boot开发应用程序。

解压项目目录如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
testcoder
├── HELP.md
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── cn
│ │ └── forxiu
│ │ └── testcoder
│ │ └── TestcoderApplication.java
│ └── resources
│ ├── application.properties
│ ├── static
│ └── templates
└── test
└── java
└── cn
└── forxiu
└── testcoder
└── TestcoderApplicationTests.java

如你所见,项目里基本没有代码,除了几个空目录外,还包含了如下几样东西。

  • pom.xml: Maven构建文件说明
  • NiocoderApplication.java: 一个带有main()方法的类,用于引导启动应用程序
  • NiocoderApplicationTests.java: 一个空的JUnit测试类
  • application.properties:一个空的properties文件,你可以根据需要添加配置属性

Spring Boot应用程序中,就连空目录都有自己的意义。static目录放置的是Web应用程序的 静态内容(JavaScript、样式表、图片,等等)。还有,稍后你将看到,用于呈现模型数据的模板 会放在templates目录里。