spring boot
專案初始化,介紹三種方式:IntelliJ
建立、Spring CLI
建立以及手動建立,工程使用 gradle
構建工具。
IntelliJ建立
- 選擇 spring initializr
- 填寫自己想要的配置資訊
- 選擇依賴包:
- 配置工程名和工程所在目錄: 進入到工程,如下圖所示:
建立完成。
Spring CLI建立
示例:
spring init -dweb,data-jpa,h2,thymeleaf --build gradle initbycli
複製程式碼
執行命令後會顯示:
Using service at https://start.spring.io
Project extracted to '<current_path>/initbycli'
複製程式碼
執行完成會看到當前目錄下會多出 initbycli
目錄.
.
└── initbycli
├── HELP.md
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── initbycli
│ │ └── DemoApplication.java
│ └── resources
│ ├── application.properties
│ ├── static
│ └── templates
└── test
└── java
└── com
└── example
└── initbycli
└── DemoApplicationTests.java
複製程式碼
可以看到基本工程目錄檔案已經建立好了。
再看一下 Spring CLI
的說明:
$ spring help init
spring init - Initialize a new project using Spring Initializr (start.spring.io)
usage: spring init [options] [location]
Option Description
------ -----------
-a, --artifactId <String> Project coordinates; infer archive name (for
example 'test')
-b, --boot-version <String> Spring Boot version (for example '1.2.0.RELEASE')
--build <String> Build system to use (for example 'maven' or
'gradle') (default: maven)
-d, --dependencies <String> Comma-separated list of dependency identifiers to
include in the generated project
--description <String> Project description
-f, --force Force overwrite of existing files
--format <String> Format of the generated content (for example
'build' for a build file, 'project' for a
project archive) (default: project)
-g, --groupId <String> Project coordinates (for example 'org.test')
-j, --java-version <String> Language level (for example '1.8')
-l, --language <String> Programming language (for example 'java')
--list List the capabilities of the service. Use it to
discover the dependencies and the types that are
available
-n, --name <String> Project name; infer application name
-p, --packaging <String> Project packaging (for example 'jar')
--package-name <String> Package name
-t, --type <String> Project type. Not normally needed if you use --
build and/or --format. Check the capabilities of
the service (--list) for more details
--target <String> URL of the service to use (default: https://start.
spring.io)
-v, --version <String> Project version (for example '0.0.1-SNAPSHOT')
-x, --extract Extract the project archive. Inferred if a
location is specified without an extension
複製程式碼
說明:
- 依賴: 使用
-d, --dependencies <String>
,,
號分割. - 專案構建型別:
--build <String>
, 預設為maven
, 另一選項是gradle
. - 初始化型別:
--format <String>
, 預設為project
, 會初始化整個工程的目錄結構。可選項是build
, 只會生成工程所需要的build.gradle
檔案. - 檢視有哪些可以配置的:
--list
, 命令輸出以後,內容包括可選的依賴包,工程型別和構建屬性( java 版本等).
手動建立
-
建立工程目錄:
mkdir initbyself
-
在工程目錄下建立
build.gradle
檔案,cd initbyself vim build.gradle 複製程式碼
build.gradle
內容為:plugins { id 'org.springframework.boot' version '2.1.3.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 複製程式碼
-
建立
setting.gradle
檔案
pluginManagement {
repositories {
gradlePluginPortal()
}
}
rootProject.name = 'initbyself'
複製程式碼
- 建立java程式碼目錄
mkdir -p src/main/java/com/example/initbyself mkdir -p src/main/java/resources 複製程式碼
- 建立
application
- 切換到程式碼目錄
cd src/main/java/com/example/initbyself
- 編寫原始碼檔案
DemoApplication.java
package com.example.initbyself; 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); } } 複製程式碼
- 執行
gradle build
, 結果為:> Task :build Skipping task ':build' as it has no actions. :build (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs. BUILD SUCCESSFUL in 3s 2 actionable tasks: 2 executed 複製程式碼
- 執行專案:
java -jar build/libs/initbyself-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE)
.
.
.
.
.
2019-03-07 00:17:36.996 INFO 11848 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-03-07 00:17:36.999 INFO 11848 --- [ main] com.example.initbyself.DemoApplication : Started DemoApplication in 19.497 seconds (JVM running for 19.992)
複製程式碼
此時,已說明工程初始化成功了。
小結
以上是 Spring Boot 專案的初始化的三種方式,不一定全。第一種和第二種都依賴 https://start.spring.io 這個地址,這是官方提供的快速初始化方式,第三種是我們全手動一步一步初始化,需要對構建工具十分熟悉。