創(chuàng)建Spring Boot項(xiàng)目的幾種方式總結(jié)(推薦)
一、我們可以使用Spring Initializr來創(chuàng)建SpringBoot項(xiàng)目。
Spring Initializr從本質(zhì)上來說就是一個(gè)Web應(yīng)用程序,它能為你生成Spring Boot項(xiàng)目結(jié)構(gòu)。雖然不能生成應(yīng)用程序代碼,但它能為你提供一個(gè)基本的項(xiàng)目結(jié)構(gòu),以及一個(gè)用于構(gòu)建代碼的Maven或Gradle構(gòu)建說明文件。你只需要寫應(yīng)用程序的代碼就好了。
Spring Initializr有幾種用法。
1.通過Web界面使用。
2.通過Spring Tool Suite使用。
3.通過IntelliJ IDEA使用。
4.使用Spring Boot CLI使用。
5.補(bǔ)充: 單純地使用gradle或者maven來構(gòu)建。
1. 使用Spring Initializr的Web界面
要使用Spring Initializr,最直接的辦法就是用瀏覽器打開http://start.spring.io,你應(yīng)該能看到類似下圖的一個(gè)表單:

在這里你可以選擇使用Maven或者Gradle來構(gòu)建項(xiàng)目,以及是基于Java還是Groovy,以及Spring Boot的版本,在下面我們可以設(shè)置項(xiàng)目的Group以及Artifact,在右邊Dependencies里我們可以添加所需要的依賴,輸入我們所需要的依賴名稱會(huì)出現(xiàn)匹配,若沒有找到我們需要的依賴,可以點(diǎn)擊下面的 "Switch to the full version" 就能看到可用依賴的完整列表。這些信息是用來生成Maven的pom.xml文件(或者Gradle的build.gradle文件)的。
填完表單,選好依賴,點(diǎn)擊“Generate Project”按鈕,Spring Initializr就會(huì)為你生成一個(gè)項(xiàng)目。瀏覽器將會(huì)以ZIP文件的形式(文件名取決于Artifact字段的內(nèi)容)把這個(gè)項(xiàng)目下載下來。根據(jù)你的選擇,ZIP文件的內(nèi)容也會(huì)略有不同。不管怎樣,ZIP文件都會(huì)包含一個(gè)極其基礎(chǔ)的項(xiàng)目,讓你能著手使用Spring Boot開發(fā)應(yīng)用程序。
下載下來之后我們只需要解壓縮下然后導(dǎo)入至IDE中就好了~
2. 在Spring Tool Suite里創(chuàng)建Spring Boot項(xiàng)目
長久以來,Spring Tool Suite①一直都是開發(fā)Spring應(yīng)用程序的不二之選。從3.4.0版本開始,它就集成了Spring Initializr,這讓它成為開始上手Spring Boot的好方法。要在Spring Tool Suite里創(chuàng)建新的Spring Boot應(yīng)用程序,在File菜單里選中New > Spring Starter Project菜單項(xiàng),隨后Spring Tool Suite會(huì)顯示一個(gè)與下圖相仿的對話框。
如你所見,這個(gè)對話框要求填寫的信息和Spring Initializr的Web界面里是一樣的。事實(shí)上,你在這里提供的數(shù)據(jù)會(huì)被發(fā)送給Spring Initializr,用于創(chuàng)建項(xiàng)目ZIP文件,這和使用Web表單是一樣的。

如果你想在文件系統(tǒng)上指定項(xiàng)目創(chuàng)建的位置,或者把它加入IDE里的特定工作集,就點(diǎn)擊Next按鈕。你會(huì)看到第二個(gè)對話框,下如圖所示:

Location指定了文件系統(tǒng)上項(xiàng)目的存放位置。如果你使用Eclipse的工作集來組織項(xiàng)目,那么也可以勾上Add Project to Working Sets這個(gè)復(fù)選框,選擇一個(gè)工作集,這樣就能把項(xiàng)目加入指定的工作集了。
Site Info部分簡單描述了將要用來訪問Initializr的URL,大多數(shù)情況下你都可以忽略這部分內(nèi)容。然而,如果要部署自己的Initializr服務(wù)器(從https://github.com/spring-io/initializr復(fù)制代碼即可),你可以在這里設(shè)置Initializr基礎(chǔ)URL。
點(diǎn)擊Finish按鈕后,項(xiàng)目的生成和導(dǎo)入過程就開始了。你必須認(rèn)識(shí)到一點(diǎn),Spring Tool Suite的Spring Starter Project對話框,其實(shí)是把項(xiàng)目生成的工作委托給http://start.spring.io上的Spring Initializr來做的,因此必須聯(lián)網(wǎng)才能使用這一功能。
一旦把項(xiàng)目導(dǎo)入工作空間,應(yīng)用程序就可以開發(fā)了。在開發(fā)的過程中,你會(huì)發(fā)現(xiàn)Spring Tool Suite針對Spring Boot還有一些錦上添花的功能。比如,可以在Run菜單里選中Run As > Spring Boot Application,在嵌入式服務(wù)器里運(yùn)行你的應(yīng)用程序。
注意,Spring Tool Suite是通過REST API與Initializr交互的,因此只有連上Initializr它才能正常工作。如果你的開發(fā)機(jī)離線,或者Initializr被防火墻阻斷了,那么Spring Tool Suite的Spring Starter Project向?qū)菬o法使用的。
3. 在IntelliJ IDEA里創(chuàng)建Spring Boot項(xiàng)目
IntelliJ IDEA是非常流行的IDE,IntelliJ IDEA 14.1就開始支持Spring Boot了。
要在IntelliJ IDEA里創(chuàng)建新的Spring Boot應(yīng)用程序,在File菜單里選擇New > Project。你會(huì)看到幾屏內(nèi)容(如下圖),問的問題和Initializr的Web應(yīng)用程序以及Spring Tool Suite類似。


Spring Boot初始化向?qū)У牡诙烈竽闾峁╉?xiàng)目的一些基本信息,比如項(xiàng)目名稱、Maven Group和Artifact、Java版本,以及你是想用Maven還是Gradle來構(gòu)建項(xiàng)目。描述好項(xiàng)目信息之后,點(diǎn)擊Next按鈕就能看到第三屏了,如下圖所示:

第二屏向你詢問項(xiàng)目的基本信息,第三屏就開始問你要往項(xiàng)目里添加什么依賴了。和之前一樣,屏幕里的復(fù)選框和Spring Boot起步依賴是對應(yīng)的。選完之后點(diǎn)擊Next就到了向?qū)У淖詈笠黄粒?/p>

最后一屏問你項(xiàng)目叫什么名字,還有要在哪里創(chuàng)建項(xiàng)目。一切準(zhǔn)備就緒之后,點(diǎn)擊Finish按鈕,就能在IDE里得到一個(gè)空的Spring Boot項(xiàng)目了。
4. 在Spring Boot CLI里使用Initializr
如果你想僅僅寫代碼就完成Spring應(yīng)用程序的開發(fā),那么Spring Boot CLI是個(gè)不錯(cuò)的選擇。然而,Spring Boot CLI的功能還不限于此,它有一些命令可以幫你使用Initializr,通過它上手開發(fā)更傳統(tǒng)的Java項(xiàng)目。
Spring Boot CLI包含了一個(gè)init命令,可以作為Initializr的客戶端界面。
init命令最簡單的用法就是創(chuàng)建Spring Boot項(xiàng)目的基線:
$ spring init
在和Initializr的Web應(yīng)用程序通信后,init命令會(huì)下載一個(gè)demo.zip文件。解壓后你會(huì)看到一個(gè)典型的項(xiàng)目結(jié)構(gòu),包含一個(gè)Maven的pom.xml構(gòu)建描述文件。Maven的構(gòu)建說明只包含最基本的內(nèi)容,即只有Spring Boot基線和測試起步依賴。你可能會(huì)想要更多的東西。
假設(shè)你想要構(gòu)建一個(gè)Web應(yīng)用程序,其中使用JPA實(shí)現(xiàn)數(shù)據(jù)持久化,使用Spring Security進(jìn)行安全加固,可以用-- dependencies或-d來指定那些初始依賴:
$ spring init -dweb,jpa,security
這條命令會(huì)下載一個(gè)demo.zip文件,包含與之前一樣的項(xiàng)目結(jié)構(gòu),但在pom.xml里增加了Spring Boot的Web、jpa和security起步依賴。請注意,在-d和依賴之間不能加空格,否則就變成了下載一個(gè)ZIP文件,文件名是web,jpa,security。
現(xiàn)在,假設(shè)你想用Gradle來構(gòu)建項(xiàng)目。沒問題,用--build參數(shù)將Gradle指定為構(gòu)建類型:
$ spring init -dweb,jpa,security --build gradle
默認(rèn)情況下,無論是Maven還是Gradle的構(gòu)建說明都會(huì)產(chǎn)生一個(gè)可執(zhí)行JAR文件。但如果你想要一個(gè)WAR文件,那么可以通過--packaging或者-p參數(shù)進(jìn)行說明:
$ spring init -dweb,jpa,security --build gradle -p war
到目前為止,init命令只用來下載ZIP文件。如果你想讓CLI幫你解壓那個(gè)ZIP文件,可以指定一個(gè)用于解壓的目錄:
$ spring init -dweb,jpa,security --build gradle -p war myapp
此處的最后一個(gè)參數(shù)說明你希望把項(xiàng)目解壓到myapp目錄里去。
此外,如果你希望CLI把生成的項(xiàng)目解壓到當(dāng)前目錄,可以使用--extract或者-x參數(shù):
$ spring init -dweb,jpa,security --build gradle -p jar -x
init命令還有不少其他參數(shù),包括基于Groovy構(gòu)建項(xiàng)目的參數(shù)、指定用Java版本編譯的參數(shù),還有選擇構(gòu)建依賴的Spring Boot版本的參數(shù)??梢酝ㄟ^help命令了解所有參數(shù)的情況:
$ spring help init
你也可以查看那些參數(shù)都有哪些可選項(xiàng),為init命令帶上--list或-l參數(shù)就可以了:
$ spring init -l
你一定注意到了,盡管spring init –l列出了一些Initializr支持的參數(shù),但并非所有參數(shù)都能直接為Spring Boot CLI的init命令所支持。舉例來說,用CLI初始化項(xiàng)目時(shí),你不能指定根包的名字,它默認(rèn)為demo。spring help init會(huì)告訴你CLI的init命令都支持哪些參數(shù)。
5.補(bǔ)充:單純地使用gradle(或maven)來構(gòu)建Spring Boot項(xiàng)目
該方式適用于在使用Spring Initializr構(gòu)建Spring Boot項(xiàng)目時(shí)連接 https://start.spring.io (換成http協(xié)議) 異常報(bào)錯(cuò)的情況。
例如:

這里使用IDEA創(chuàng)建Gradle項(xiàng)目作為示例。首先我們創(chuàng)建一個(gè)Gradle項(xiàng)目: File->New->Project->Gradle

我們點(diǎn)擊Next,然后填入GroupId,ArtifactId以及Version號,點(diǎn)擊Next,

這里需要注意:
1.不推薦勾選Use auto-import;
2.因?yàn)槟J(rèn)從網(wǎng)上下載gradle,非常的慢,所以這里建議勾選: Use local gradle distribution,填好本地的gradle home

之后在NewProject里面填好項(xiàng)目名稱以及路徑,點(diǎn)擊Finish即可。

到這里生成了一個(gè)Gradle項(xiàng)目,還不是Spring Boot項(xiàng)目,所以我們需要寫下Spring Boot的一些基本配置,這里給大家貼一下我的 gradle.build 文件:
buildscript {
repositories {
maven {
url = 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
dependencies {
classpath('org.springframework.boot:spring-boot-gradle-plugin:2.0.3.RELEASE')
}
}
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.springboot'
version = '1.0.0.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
maven {
url = 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
(這里使用的阿里云的鏡像,推薦使用,下載依賴的速度非常之快,原配置的速度太慢太慢)
之后在右邊Tool Buttons欄里面選擇Gradle:

(若沒有則可以在View里面選擇Tool Buttons即可展開)
然后點(diǎn)擊refresh刷新按鈕。

之后我們就會(huì)生成Spring Boot項(xiàng)目的目錄結(jié)構(gòu):
src
|-- main
|-- java
|--com.springboot
|---- SpringBootDemoApplication
|----resources
|----test
完成。
二、小結(jié)
無論你是用Initializr的Web界面,在Spring Tool Suite里創(chuàng)建項(xiàng)目,還是用Spring Boot CLI來初始化項(xiàng)目,Spring Boot Initializr創(chuàng)建出來的項(xiàng)目都有相似的項(xiàng)目布局,和你之前開發(fā)過的Java項(xiàng)目沒什么不同
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java配置JDK開發(fā)環(huán)境及環(huán)境變量
這篇文章主要為大家詳細(xì)介紹了Java配置JDK開發(fā)環(huán)境及環(huán)境變量,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
IntelliJ IDEA 使用經(jīng)驗(yàn)總結(jié)(推薦)
這篇文章主要介紹了IntelliJ IDEA 使用經(jīng)驗(yàn)總結(jié),非常不錯(cuò),具有參考價(jià)值,需要的朋友可以參考下2018-02-02
SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn)
短鏈跳轉(zhuǎn)是一種通過將長鏈接轉(zhuǎn)換為短鏈接的方式,以便在互聯(lián)網(wǎng)上進(jìn)行鏈接共享和傳播的技術(shù),短鏈將原始長鏈接通過特定算法轉(zhuǎn)換為較短的鏈接,使得它更容易分享、傳播和展示,本文給大家介紹了SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn),需要的朋友可以參考下2024-03-03
IDEA 自帶的數(shù)據(jù)庫工具真的很牛(收藏版)
這篇文章主要介紹了IDEA 自帶的數(shù)據(jù)庫工具真的很牛(收藏版),本文以 IntelliJ IDEA/ Mac 版本作為演示,其他版本的應(yīng)該也差距不大,需要的朋友可以參考下2021-04-04
java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法)
這篇文章主要介紹了java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法),需要的朋友可以參考下2020-08-08
Mybatis查詢返回兩個(gè)或多個(gè)參數(shù)問題
這篇文章主要介紹了Mybatis查詢返回兩個(gè)或多個(gè)參數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Spring中ApplicationListener的使用解析
這篇文章主要介紹了Spring中ApplicationListener的使用解析,ApplicationContext事件機(jī)制是觀察者設(shè)計(jì)模式的實(shí)現(xiàn),通過ApplicationEvent類和ApplicationListener接口,需要的朋友可以參考下2023-12-12
Spring Cloud中各組件超時(shí)總結(jié)
在大家學(xué)習(xí)spring cloud的時(shí)候組件是必不可少的一部分,下面這篇文章主要給大家介紹了關(guān)于Spring Cloud中各組件超時(shí)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11

