【springboot 入門篇】第1篇 第一個spring-boot程序(多種搭建方式)

學習一個新技術(shù),先別管他的原理啊,流程啊,怎么組織代碼啊什么的。直接從官網(wǎng)或者博客抄一個小demo,自己親自跑一遍,然后再去看那一堆讓人頭皮發(fā)麻的講解,就能相對容易的看懂了。

初學者的態(tài)度應(yīng)該是:不要問我為什么,反正我就是可以這樣運行!

1. 創(chuàng)建一個spring boot項目可以使用哪些工具

1.1 使用start.spring.io

這是一個網(wǎng)站,可以在這個網(wǎng)站選擇你需要的組件,然后會自動生成一個項目文件,你可以將它下載到本地,然后使用你常用的編譯器打開就好。(它是下面三種方法的基礎(chǔ))

1.2 使用Spring Tool Suite(STS)

STS是eclipse的一個插件,可以方便eclipse用戶進行spring boot的開發(fā)。

1.3 使用Intellij IDEA

IDEA 集成了spring boot(也是一個插件),idea對新技術(shù)的支持比較快,而且是最好用的java編譯器(我認為的)。推薦大家使用它進行開發(fā),教程可以參考我寫的文章。

1.4 使用Spring boot CLI

Spring boot的命令行工具,可以很方便的操作spring項目。

接下來會逐一演示這四種方法。

2. 實戰(zhàn):創(chuàng)建第一個spring boot項目

2.1 使用start.spring.io

項目配置

打開這個網(wǎng)站,設(shè)置你的項目,選擇需要的dependencies。然后點擊生成項目。就可以把項目下載到本地了。

項目結(jié)構(gòu)

下載下來的就是一個maven項目,你可以使用你熟悉的ide打開它,然后進行代碼的編寫。

2.2 使用Spring Tool Suite(STS)

首先,你需要安裝這個插件。

安裝STS

安裝好后,選擇創(chuàng)建一個spring stater項目:

創(chuàng)建項目

項目設(shè)置:

項目設(shè)置

看到了么,start.spring.io O.O

版本和依賴選擇:

版本和依賴選擇

完成

完成

2.3 使用Intellij IDEA

使用idea

選擇spring initializr,然后選擇jdk版本,點next。可以發(fā)現(xiàn),idea的這個插件其實用的也是start.spring.io。

接下來配置你的項目:

配置你的項目

選擇你需要的依賴和版本:

選擇你需要的依賴和版本

設(shè)置項目名和位置:

設(shè)置項目名和位置

完成:

完成

2.4 使用Spring boot CLI

2.4.1 下載安裝:(當前最新版1.5.3)

  • 方法1,手動安裝,下載下面的壓縮包,提供兩種壓縮格式。

spring-boot-cli-1.5.3.RELEASE-bin.zip
spring-boot-cli-1.5.3.RELEASE-bin.tar.gz

下載完成后,遵循解壓后的存檔里的INSTALL.txt操作指南進行安裝。一般而言,在.zip文件的bin/目錄下存在一個spring腳本(Windows下是spring.bat),或者使用java -jar來運行一個.jar文件(該腳本會幫你確定classpath被正確設(shè)置)。

  • 方法2,使用SDKMAN安裝
    SDKMAN! (The Software Development Kit Manager) 可以用來管理多種有許多版本的sdk,包括groovy和spring boot cli。可以通過 sdkman.io來獲得sdkman,然后通過它來安裝cli。:
$ sdk install springboot
$ spring --version
Spring Boot v1.5.3.RELEASE

你也可以通過配置,來獲取其他版本的CLI:

$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-1.5.3.RELEASE-bin/spring-1.5.3.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v1.5.3.RELEASE
  • 方法3,如果你是mac用戶,可以使用Homebrew:
$ brew tap pivotal/tap
$ brew install springboot
// 會安裝到/usr/local/bin
  • 方法4,mac用戶也可以使用MacPorts安裝:
$ sudo port install spring-boot-cli

命令行實現(xiàn):
Spring Boot CLI啟動腳本為BASHzsh shells提供完整的命令行實現(xiàn)。你可以在任何shell中source腳本(名稱也是spring),或?qū)⑺诺侥銈€人或系統(tǒng)范圍的bash實現(xiàn)初始化中。在一個Debian系統(tǒng)里,系統(tǒng)范圍的腳本位于/shell-completion/bash
下,當一個新的shell啟動時該目錄下的所有腳本都被執(zhí)行。想要手動運行該腳本,例如,你已經(jīng)使用GVM進行安裝了:

$ . ~/.gvm/springboot/current/shell-completion/bash/spring
$ spring 
  grab  help  jar  run  test  version

如果你使用Homebrew或MacPorts安裝Spring Boot CLI,命令行實現(xiàn)腳本會自動注冊到你的shell。

恩,上面撤了一堆,都是安裝CLI的方式,翻譯自官網(wǎng),選一種方式安裝就好了。安裝成功后:

2.4.2 創(chuàng)建一個項目:

輸入命令:

使用CLI
$ mkdir demo
$ cd demo
$ spring init -d=web -g=com.example -a=demo --package-name=com.example --name=demo -x

-d(dependencies 依賴包)
-g(Group Id)
-a(Artifact Id)
--package-name(Package name)
--name(Project name)
-x(Extract compatible archives)

更多詳情可以輸入spring help init查看。

查看結(jié)果:

結(jié)果

和之前的創(chuàng)建方式得到的是一樣的。

無論哪種創(chuàng)建方式都是要訪問https://start.spring.io來獲取模板工程代碼。所以甚至可以使用CURL或HTTPie這些第三方工具來創(chuàng)建。當然。。創(chuàng)建個工程而已,沒必要這么麻煩,直接idea不就好了?

3. 編寫代碼及代碼核心部分的分析

創(chuàng)建好工程了,接下來,我們簡單的寫一個小demo。

3.1 簡單的小demo。

打開DemoApplication.java 修改代碼為:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class}) //移除自動注入數(shù)據(jù)源
@RestController  // 添加了一個注解
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    //添加了一個方法
    @RequestMapping("/hello")
    public String hello(){
        return "no hello world";
    }
}

直接運行這個main方法:

運行結(jié)果

瀏覽器訪問http://localhost:8080/hello

瀏覽器訪問

大功告成。第一個spring boot項目完成。

3.2 代碼簡單講解

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
 //移除自動注入數(shù)據(jù)源

現(xiàn)在新版本的springboot會自動注入數(shù)據(jù)源,所以需要在application配置文件里寫你的數(shù)據(jù)庫信息,但是我們暫時用不到它,所以先把這個功能移除,不然會報錯。

@RestController

這個一個組合注解,相當于@ResponseBody@Controller,controller大家都知道,ResponseBody注解將內(nèi)容或?qū)ο笞鳛?HTTP 響應(yīng)正文返回。

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}

這個就是spring boot的入口。關(guān)于這個方法,我們以后會詳細講解。

    @RequestMapping("/hello")
    public String hello(){
        return "no hello world";
    }

寫過springmvc的應(yīng)該都懂吧,我就不多說了。由于只是演示,所以我就把它放在入口類中了,規(guī)范點應(yīng)該自己寫controller類的。

4. 小結(jié)

創(chuàng)建一個spring boot的項目是非常方便的,由于start.spring.io的存在,你可以使用任何你喜歡的ide來快速開發(fā)spring boot項目。

從創(chuàng)建到運行,你會發(fā)現(xiàn),我們沒有創(chuàng)建任何一個xml,也沒有多余的配置。創(chuàng)建好項目以后,寫一個controller就可以運行了,非常的方便。

后面和數(shù)據(jù)庫對接,做安全驗證的時候你會發(fā)現(xiàn),原來一切都可以這么簡單。


本篇文章到這里就結(jié)束了。如果文章內(nèi)容有錯誤,請及時與我聯(lián)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內(nèi)容