由于讀者的數量越來越多,難免會被問到一些我自己都覺得不好意思的問題,比如說前幾天小王就問我:“二哥,快教教我,怎么通過 Spring Boot 創建一個 Hello World 專案啊?”
收到問題的時候,我都驚呆了!什么年頭了,還不會用 Spring Boot,大清朝早亡了啊!

沒等我發牢騷,小王就緊接著說:“二哥,你先別生氣,我投了 14 份簡歷才在三線小鎮的一家小公司找到一份實習作業,不容易啊,領導給我安排了一個小活兒,就是搭一個 Spring Boot 的小專案,估計是測驗我的實戰能力吧,聽說二哥熱腸古道,我就抱著試一試的心態添加了你的好友,”
話說到這份上,我的氣自然也就消了,隨后,我花了五分鐘的時間幫他解決了苦惱,沒成想,他還發給我了一個小紅包,表示對我的感謝,并建議我寫一篇文章出來,因為他覺得像他這樣的小白還有很多,期初我是有些猶豫的,畢竟網上寫 Spring Boot 的文章已經很多了,況且還是“Hello World”,寫出來會不會遭人噴啊,但轉念一想,哪怕只有一個讀者需要也是我們作者應盡的義務啊,于是就有了大家看到的這篇文章,
00、Spring Boot 簡介
我猜,大家一定撰寫過基于 Spring 的應用程式,你就知道一個“Hello World”就需要大量的配置,想一想,我自己都有點懷疑,還能不能創建的出來,尤其是那些 XML 檔案,完全敲不出來,
Spring Boot 使您能輕松地創建獨立的、生產級的、基于 Spring 且能直接運行的應用程式,我們對 Spring 平臺和第三方庫有自己的看法,所以您從一開始只會遇到極少的麻煩,
看看 Spring Boot 官網對自己的“王婆賣瓜自賣自夸”,感覺確實優秀啊,這意味著我們只需極少的配置,就可以快速創建一個可以正常運行的 Spring 應用程式,而且這些極少的配置采用的是注解的方式,沒有 XML,
總之呢,Spring Boot 是一個輕量級的框架,可以完成基于 Spring 的應用程式的大部分配置作業,
01、使用 Spring Initlallzr 創建 Spring Boot 專案
創建一個 Spring Boot 專案非常簡單,通過 Spring Initlallzr(https://start.spring.io/)就可以了,(實際上,我也只是把這個網址扔給了小王,)

1)第一個選項一般選擇 Maven(Java 后端專案首選),Gradle 在安卓專案中用的比較多,如果還不太了解 Maven,請查看我以前寫的一篇文章:Maven 入門,
2)第二個選項一般選擇 Java,
3)第三個選項默認為 2.2.2,Spring Boot 目前最穩定的版本,
4)第四個選項填上專案的路徑和名稱,
5)第五個選項,我們選擇 Spring Web 和 Spring Boot Actuator,表明該專案是一個 Web 專案;Actuator 是 Spring Boot 提供的對應用系統的自省和監控的集成功能,可以查看應用配置的詳細資訊,例如自動化配置資訊、創建的 Spring beans 以及一些環境屬性等,
選項選擇完后,就可以點擊【Generate】按鈕生成一個初始化的 Spring Boot 專案了,生成的是一個壓縮包,匯入到 IDE 的時候需要先解壓,
02、把 Spring Boot 專案匯入 IDEA
最近迷上了 IDEA,所以暫時就不再使用 Eclipse 了,如果實在是不習慣 IDEA,可以選擇 Spring 自己的 IDE——STS,基于 Eclipse 的,

PS:匯入的程序就省略了,請選擇 Maven 就對了,
等待 Maven 把所有的依賴包下載完,

專案的目錄結構圖如下所示,

1)HelloSpringBootApplication 為專案的入口,帶有 main() 方法,我們知道,傳統的 Web 專案通常需要放到 Tomcat 等容器下面啟動運行,而 main() 方法則預示著該專案可以作為一個 jar 包直接運行——因為 Spring Boot 已經內置了 Tomcat,
2)大家一定對 @SpringBootApplication 注解非常好奇,它的原始碼大致如下:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
從這些注解中,我們大致可以窺探出,Spring Boot 專案使用了大量的注解取代了以往繁瑣的 xml 配置,
03、編輯 Spring Boot 專案
來看下面這段代碼,
@SpringBootApplication
@RestController
public class HelloSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringBootApplication.class, args);
}
@RequestMapping("hello")
public String hello() {
return "Hello World";
}
}
1)@RestController 注解相當于 @ResponseBody + @Controller,意味著請求回傳的物件可以直接以 JSON 的格式回顯,
2)hello() 方法非常簡單,回傳一個字串“Hello World”,@RequestMapping 表明這個方法是一個請求映射,
04、運行 Spring Boot 專案
接下來,我們直接運行 HelloSpringBootApplication 類,這樣一個 Spring Boot 專案就啟動成功了,

默認埠為 8080,
這時候,可以直接在 IDEA 的 Terminal 面板中測驗該專案是否啟動成功,

命令列為 curl http://localhost:8080/hello,之所以不需要專案路徑 helloSpringBoot,是因為默認啟動的時候相當于是一個 ROOT 級別的,所以不需要根目錄,
curl 是一個常用的命令列工具,用來請求 Web 服務器,它的名字就是客戶端(client)和 URL 的合體,curl 的功能非常強大,命令列引數多達幾十種,如果運用熟練的話,完全可以取代 Postman,

05、jar 形式運行 Spring Boot 專案
打開 pom.xml,我們可以看到如下內容:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
這意味著我們可以通過 maven 命令 mvn clean package 將 Spring Boot 專案打包成 jar 檔案,

也可以加上引數用于跳過打包時候的測驗:mvn clean package -Dmaven.test.skip
稍等片刻,就可以在 target 目錄下看到對應的 jar 包,該 jar 包比起傳統的 war 包更具有優勢,因為不需要再單獨開一個容器來跑專案了,Spring Boot 內置過了,原生的 jar 檔案(.jar.original)只有不到 3 kb,非常小,因為沒幾行代碼,但打包后 .jar 檔案有 19 M,這說明 Spring Boot 幫我們做了很多肉眼看不到的作業,

直接使用 java -jar helloSpringBoot-0.0.1-SNAPSHOT.jar 命令運行該 jar 包,同樣可以看到 Tomcat 的啟動資訊,

這次,我們使用瀏覽器來訪問一下,

也是 OK 的,這說明我們的第一個 Spring Boot 程式跑起來了,快給自己點個贊,

06、鳴謝
好了,親愛的讀者朋友們,答應小王的文章終于寫完了,能看到這里的都是最優秀的程式員,升職加薪就是你了??,本文配套的原始碼已上傳至 GitHub 【SpringBootDemo.helloSpringBoot】,
如果覺得文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀,
本文已收錄 GitHub,傳送門~ ,里面更有大廠面試完整考點,歡迎 Star,
我是沉默王二,一枚有顏值卻靠才華茍且的程式員,關注即可提升學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,嘻嘻,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/186226.html
標籤:Java
下一篇:Spring的核心模塊決議
