Spring Boot快速入門

簡介

在您第1次接觸和學習Spring框架的時候,是否因為其繁雜的配置而退卻了矾屯?在你第n次使用Spring框架的時候滩届,是否覺得一堆反復黏貼的配置有一些厭煩诊沪?那么您就不妨來試試使用Spring Boot來讓你更易上手忧吟,更簡單快捷地構(gòu)建Spring應(yīng)用砌函!

Spring Boot讓我們的Spring應(yīng)用變的更輕量化。比如:你可以僅僅依靠一個Java類來運行一個Spring引用溜族。你也可以打包你的應(yīng)用為jar并通過使用java -jar來運行你的Spring Web應(yīng)用讹俊。

Spring Boot的主要優(yōu)點:

  • 為所有Spring開發(fā)者更快的入門
  • 開箱即用,提供各種默認配置來簡化項目配置
  • 內(nèi)嵌式容器簡化Web項目
  • 沒有冗余代碼生成和XML配置的要求

快速入門

本章主要目標完成Spring Boot基礎(chǔ)項目的構(gòu)建煌抒,并且實現(xiàn)一個簡單的Http請求處理仍劈,通過這個例子對Spring Boot有一個初步的了解,并體驗其結(jié)構(gòu)簡單摧玫、開發(fā)快速的特性。

系統(tǒng)要求:

  • Java 7及以上
  • Spring Framework 4.1.5及以上

本文采用Java 1.8.0_73绑青、Spring Boot 1.5.8調(diào)試通過诬像。

使用Maven構(gòu)建項目

1.通過SPRING INITIALIZR
1.1.工具產(chǎn)生基礎(chǔ)項目訪問:http://start.spring.io/
1.2.選擇構(gòu)建工具Maven Project、Spring Boot版本1.3.2以及一些工程基本信息闸婴,可參考下圖所示:

image.png

1.3.點擊Generate Project下載項目壓縮包

2.解壓項目包坏挠,并用IDE以Maven項目導入,以IntelliJ IDEA 14為例:
2.1.菜單中選擇File–>New–>Project from Existing Sources...
2.2.選擇解壓后的項目文件夾邪乍,點擊OK
2.3.點擊Import project from external model并選擇Maven降狠,點擊Next到底為止对竣。
2.4.若你的環(huán)境有多個版本的JDK,注意到選擇Java SDK的時候請選擇Java 7以上的版本

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

image.png

通過上面步驟完成了基礎(chǔ)項目的創(chuàng)建榜配,如上圖所示否纬,Spring Boot的基礎(chǔ)結(jié)構(gòu)共三個文件(具體路徑根據(jù)用戶生成項目時填寫的Group所有差異):

  • src/main/java下的程序入口:Chapter1Application
  • src/main/resources下的配置文件:application.properties
  • src/test/下的測試入口:Chapter1ApplicationTests

生成的Chapter1Application和Chapter1ApplicationTests類都可以直接運行來啟動當前創(chuàng)建的項目,由于目前該項目未配合任何數(shù)據(jù)訪問或Web模塊蛋褥,程序會在加載完Spring之后結(jié)束運行临燃。

引入Web模塊

當前的pom.xml內(nèi)容如下,僅引入了兩個模塊:

  • spring-boot-starter:核心模塊烙心,包括自動配置支持膜廊、日志和YAML
  • spring-boot-starter-test:測試模塊,包括JUnit淫茵、Hamcrest爪瓜、Mockito
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

引入Web模塊,需添加spring-boot-starter-web模塊:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

編寫HelloWorld服務(wù))編寫HelloWorld服務(wù)

  • 創(chuàng)建package命名為com.ding.space.web(根據(jù)實際情況修改)
  • 創(chuàng)建HelloController類匙瘪,內(nèi)容如下
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }
}

編寫單元測試用例

打開的src/test/下的測試入口Chapter1ApplicationTests類辆苔。下面編寫一個簡單的單元測試來模擬http請求算灸,具體如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class Chapter1ApplicationTests {
    private MockMvc mvc;
    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }
    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }
}

使用MockServletContext來構(gòu)建一個空的WebApplicationContext,這樣我們創(chuàng)建的HelloController就可以在@Before函數(shù)中創(chuàng)建并傳遞到MockMvcBuilders.standaloneSetup()函數(shù)中驻啤。

  • 注意引入下面內(nèi)容菲驴,讓status、content骑冗、equalTo函數(shù)可用
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

至此已完成目標赊瞬,通過Maven構(gòu)建了一個空白Spring Boot項目,再通過引入web模塊實現(xiàn)了一個簡單的請求處理贼涩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巧涧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子遥倦,更是在濱河造成了極大的恐慌谤绳,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袒哥,死亡現(xiàn)場離奇詭異缩筛,居然都是意外死亡,警方通過查閱死者的電腦和手機堡称,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門瞎抛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人却紧,你說我怎么就攤上這事桐臊√コ罚” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵断凶,是天一觀的道長伤提。 經(jīng)常有香客問我,道長懒浮,這世上最難降的妖魔是什么飘弧? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮砚著,結(jié)果婚禮上次伶,老公的妹妹穿的比我還像新娘。我一直安慰自己稽穆,他們只是感情好冠王,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舌镶,像睡著了一般柱彻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上餐胀,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天哟楷,我揣著相機與錄音,去河邊找鬼否灾。 笑死卖擅,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的墨技。 我是一名探鬼主播惩阶,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扣汪!你這毒婦竟也來了断楷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤崭别,失蹤者是張志新(化名)和其女友劉穎冬筒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅主,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡舞痰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了暗膜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匀奏。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞭衩,死狀恐怖学搜,靈堂內(nèi)的尸體忽然破棺而出娃善,到底是詐尸還是另有隱情,我是刑警寧澤瑞佩,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布聚磺,位于F島的核電站,受9級特大地震影響炬丸,放射性物質(zhì)發(fā)生泄漏瘫寝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一稠炬、第九天 我趴在偏房一處隱蔽的房頂上張望焕阿。 院中可真熱鬧,春花似錦首启、人聲如沸暮屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褒纲。三九已至,卻和暖如春钥飞,著一層夾襖步出監(jiān)牢的瞬間莺掠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工读宙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留彻秆,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓论悴,卻偏偏與公主長得像掖棉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子膀估,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理幔亥,服務(wù)發(fā)現(xiàn),斷路器察纯,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • 簡介 在您第1次接觸和學習Spring框架的時候帕棉,是否因為其繁雜的配置而退卻了?在你第n次使用Spring框架的時...
    程序猿DD閱讀 45,100評論 27 99
  • 多久之后饼记,依依想起香伴, 在夢里,在心里具则, 踏遍了夢里的萬水千山即纲, 喚起了心里的疲憊黯然, 一次次望向你的頭發(fā)博肋,路過你...
    聞風兒語閱讀 273評論 0 2
  • 深圳打井大王低斋,叫賴玉超蜂厅! 2015年11月23日 萬能姐夫@劉克-萬能的姐夫組織寫作班,讓寫個自我介紹膊畴。 我百度了...
    laiyuchao閱讀 189評論 0 0