一、Spring Initializr
- 访问 Spring Initializr
- 选择构建工具 Maven Project、Spring Boot 2.1.4、Java 1.8 以及一些工程基本信息,可参考下图所示:
- 点击 Generate Project 下载项目压缩包
- 解压后,使用 Idea 打开项目
二、Spring CLI
最新项目下载地址:Manual Installation
历史项目下载地址:Spring CLI
将下载好的zip压缩包解压到自定义目录,比如:
D:\Development\Spring\spring-2.4.1
将其目录下的 bin
添加到PATH环境变量。
验证命令:
$ spring version
Spring CLI v2.4.1
运行groovy
文件
创建一个 hello.groovy
文件
@RestController
class WebApplication {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
运行:
spring run hello.groovy
创建SpringBoot项目
通过 init
命令创建一个SpringBoot项目
spring init springCliDemo
Using service at https://start.spring.io
Project extracted to 'D:\Workplace\_Idea\springCliDemo'
如果初始化的时候需要添加依赖,使用参数 --dependencies
:
spring init --dependencies=web,data-jpa my-project
查看Spring初始化列表
使用 init --list
可以查看支持的初始化类型及参数:
$ spring init --list
Project types (* denotes the default)
+-----------------+------------------------------------------+-----------------------------+
| Id | Description | Tags |
+-----------------+------------------------------------------+-----------------------------+
| gradle-build | Generate a Gradle build file. | build:gradle,format:build |
| gradle-project | Generate a Gradle based project archive. | build:gradle,format:project |
| maven-build | Generate a Maven pom.xml. | build:maven,format:build |
| maven-project * | Generate a Maven based project archive. | build:maven,format:project |
+-----------------+------------------------------------------+-----------------------------+
Parameters
+-------------+------------------------------------------+------------------------------+
| Id | Description | Default value |
+-------------+------------------------------------------+------------------------------+
| artifactId | project coordinates (infer archive name) | demo |
| bootVersion | spring boot version | 2.4.1 |
| description | project description | Demo project for Spring Boot |
| groupId | project coordinates | com.example |
| javaVersion | language level | 11 |
| language | programming language | java |
| name | project name (infer application name) | demo |
| packageName | root package | com.example.demo |
| packaging | project packaging | jar |
| type | project type | maven-project |
| version | project version | 0.0.1-SNAPSHOT |
+-------------+------------------------------------------+------------------------------+
示例:
spring init --build=gradle --java-version=1.8 --dependencies=websocket --packaging=war sample-app.zip
spring shell
进入spring shell:
$ spring shell
Spring Boot (v2.4.1)
Hit TAB to complete. Type 'help' and hit RETURN for help, and 'exit' to quit.
> version
Spring CLI v2.4.1
参考资料:
三、通过Idea创建
- 选择 File -> New —> Project… 弹出新建项目的框
- 选择 Spring Initializr,Next 也会出现上述类似的配置界面,Idea 帮我们做了集成
- 填写相关内容后,点击 Next 选择依赖的包再点击 Next,最后确定信息无误点击 Finish。
四、手动创建SpringBoot项目
想要深入了解SpringBoot,于是就手动创建了一个SpringBoot项目,具体步骤如下:
- 创建一个maven项目
mvn archetype:generate
- 在
pom.xml
中添加相关依赖
<project>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
五、运行和打包
mvn clean
清理生成的产物 (target 目录)mvn spring-boot:run
运行程序mvn package
打包程序
在构建之前, 需要安装依赖以及清理之前的构建
mvn install
mvn clean
运行 mvn package
可以对项目进行打包,输出到 target/xxx.jar
可以使用 java -jar
命令运行该应用程序:
java -jar target/demo-0.0.1-SNAPSHOT.jar
调试已打包的应用:
java -jar myproject.jar --debug
六、命令行属性
默认情况下,SpringApplication会将所有命令行配置参数(以 --
开头,比如 --server.port=9000
)转化成一个property,并将其添加到Spring Environment中。命令行属性总是优先于其他属性源。
如果不喜欢将 application.properties
作为配置文件名,你可以通过指定 spring.config.name
环境属性来切换其他的名称,也可以使用 spring.config.location
环境属性引用一个明确的路径(目录位置或文件路径列表以逗号分割)。比如:
java -jar myproject.jar --spring.config.name=myproject
# or
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
如果不想将命令行属性添加到 Environment,你可以使用 SpringApplication.setAddCommandLineProperties(false)
来禁用它们。