第一章:用一個HelloWord來闡述SpringBoot的簡單與快速

簡介

spring框架盛行了多年的java方向開發(fā)人員來說,每個人java開發(fā)已經(jīng)把spring框架當做開發(fā)中不可或缺的一部分。之前傳統(tǒng)的模式都是以applicationContext.xml配置文件的形式存在,而對應大多數(shù)入門級開發(fā)人員來說配置出現(xiàn)一點紕漏就會導致運行失敗或者更大的問題,因此會浪費開發(fā)人員很多寶貴的時間,對公司來說也是有所損失。那么spring開源組織很早之前就意識到這種問題的存在,于是他們便對spring框架的全系列組件進行了內部封裝。對外只是提供maven(jar管理、項目打包工具)或者gradle(新興jar管理、項目打包工具)的形式來進行引入parent.pom(maven配置文件)或者parent.gradle(gradle配置文件),讓每一個spring項目都是以spring的子項目的形式來運行,這樣開發(fā)人員不用再去注重配置文件的繁瑣而是把精力放到業(yè)務邏輯以及更深層次的架構方面。自此SpringBoot就誕生了,它有著純正的開源血統(tǒng),在此非常感謝spring開源組織給我們java開發(fā)人員帶來的便利!

SpringBoot主要優(yōu)點:

1. 為所有Spring開發(fā)者更快的入門
2. 開箱即用,提供各種默認配置來簡化項目配置
3. 內嵌式容器簡化Web項目
4. 沒有冗余代碼生成和XML配置的要求
5. 提供一系列大型企業(yè)級項目的功能性特性(比如:安全、健康檢測、外部化配置、數(shù)據(jù)庫訪問、restful搭建等很多特性這里就不一一敘說了,后期文章會陸續(xù)更新)

免費專題文章匯總

恒宇少年在博客整理出來了SpringBoot、ApiBoot、SpringCloud的文章匯總【SpringBoot基礎教程專題】,【SpringCloud基礎教程專題】,【ApiBoot組件使用專題

本章目的

使用springboot完成一個簡單的web(springmvc)應用程序,通過@restController輸出"HelloWord"到界面,讓我們初步體驗springboot的快速開發(fā)、簡單的特性。

系統(tǒng)要求

1. jdk1.8
2. springboot 1.5.2.RELEASE
3. 開發(fā)工具(IntelliJ IDEA 2017.1.1)
4. 數(shù)據(jù)庫管理工具(Navicat Premium 11.1.7)
5. 文本管理工具(sublime text 3)
6. apache maven(3.3.9,本章采用maven形式管理jar包,具體配置環(huán)境變量以及使用請自行查找資料)

開始構建項目

目前構建項目有多種方式我這里簡單介紹兩種。
1、使用spring官網(wǎng) SPRING INITIALIZR 來構建項目結構(地址:http://start.spring.io/
2、使用IntelliJ IDEA開發(fā)工具來構建項目結構

使用SPRING INITIALIZR構建

訪問start.spring.io/網(wǎng)址就會看到如下 “圖1” 界面:
界面主要部分包括:管理工具,springboot版本,包名(group),工程名(Artifact),已選模塊(我已經(jīng)選擇了一個web模塊)。

圖1

點擊Generate Project就會下載一個根據(jù)你輸入的信息創(chuàng)建的項目工程架構源碼的壓縮包。
解壓壓縮包到指定目錄(目錄你可以隨意定義)我這里為了后續(xù)操作先定義到E:/lessions內可以看到如下“圖2”所示:

圖2

解壓完成之后我們就可以通過IntelliJ IDEA開發(fā)工具導入到工程,
1. 菜單中選擇File–>New–>Project from Existing Sources...
2. 選擇解壓后的項目文件夾,點擊OK
3. 點擊Import project from external model并選擇Maven,點擊Next到底為止。
4. 若你的環(huán)境有多個版本的JDK,注意到選擇Java SDK的時候請選擇系統(tǒng)安裝1.8版本

使用IntelliJ IDEA構建

打開工具,界面如下 “圖3” 所示:

圖3

我們點擊Create New Project來創(chuàng)建一個新的springboot應用程序,點擊后如下“圖4”所示:

圖4

我們點擊Next繼續(xù)下一步操作,根據(jù)界面輸入選項填寫對應的內容即可如“圖5”所示:

圖5

點擊Next即可完成創(chuàng)建項目,而且創(chuàng)建完成后會自動導入到項目工程內就不需要再次import操作,這種方式會比較簡單些,所以我們的文章內都會采用第二種形式來創(chuàng)建新工程。

在下一步我們勾選Web依賴加入到我們的項目中,如下圖所示:


下圖

這里注意一點的是,如果上面我們選擇了war形式,也添加了Web依賴并且在開發(fā)過程中使用Application形式啟動,則需要注釋pom.xml配置文件內tomcat依賴的scope屬性。

項目目錄結構

我們來看看工具為我們生成新工程的目錄結構,如”圖6“所示:

圖6

我們可以看到目錄結構有如下幾個:

1、/src/main/java/? 存放項目所有源代碼目錄
2、/src//main/resources/? 存放項目所有資源文件以及配置文件目錄
3、/src/test/ ?存放測試代碼目錄

自動生成的文件解釋

LessonOneApplication? 該類是程序的入口類內有個main方法,可以直接通過run as運行項目
application.properties? 該配置文件是項目的核心配置文件,以xx.xx.xx的形式存在
pom.xml? maven配置文件,因為我們采用的maven管理jar,所以這里會自動生成一個pom文件

@SpringBootApplication注解

我們可以看到工具為我們自動生成的入口程序是有@SpringBootApplication的這么一個注解,那它主要是做什么的呢?不難看出,它是聲明當前類為sprinboot的入口類。而一個springboot項目內有且只能有一個這個注解存在。

圖7

初嘗試運行項目

我們在入口程序類中右鍵->Run LessonOneApplication在控制臺的輸出如下”圖8“所示,證明你已經(jīng)成功的運行了springboot項目。

圖8

可以看到我們的項目是通過內置的tomcat容器啟動的,并且端口號默認是8080(至于如何修改端口號后期文章中更新)。我們現(xiàn)在通過瀏覽器直接訪問是得不到任何回應的,只是會有一個錯誤頁面,如下”圖9“所示

圖9

編寫HelloWordController

我們首先在/src/main/java/com/yuqiyu (該目錄是你構建項目的目錄) 目錄下創(chuàng)建一個叫做lessonOne的package,然后在lessonOne下再創(chuàng)建一個叫做controller的package,最后我們在controller包下創(chuàng)建一個HelloWordController.java 類文件,我們使用@RestController來聲明我們新創(chuàng)建的HelloWordController是一個訪問控制器,如下”圖10“所示:

圖10

可以看到我配置了一個@RequestMapping注解來聲明index()方法可以通過127.0.0.1:8080/index訪問到,那么我們接下來重新啟動項目(項目中如果重啟出錯應該是注解配置問題),訪問地址如下”圖11“所示:

圖11

可以看到我們輸出了”HelloWord“!自此我們這章的講解就完成了。

源碼地址

本章以及后續(xù)章節(jié)的源碼地址我都會分享出來,請大家自行下載以及git clone。

SpringBoot配套源碼地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源碼地址:https://gitee.com/hengboy/spring-cloud-chapter

SpringBoot相關系列文章請訪問:目錄:SpringBoot學習目錄

QueryDSL相關系列文章請訪問:QueryDSL通用查詢框架學習目錄

SpringDataJPA相關系列文章請訪問:目錄:SpringDataJPA學習目錄

SpringBoot相關文章請訪問:目錄:SpringBoot學習目錄,感謝閱讀!

總結

本章主要通過springboot簡單特性來完成了第一個"HelloWord"web應用程序的搭建,我們可以看出springboot已經(jīng)在項目搭建一個項目整合組件方面很成熟,推薦大家在日后的項目中使用該框架,可以有效的提高團隊開發(fā)效率以及縮短開發(fā)人員上手周期因。本人是第一次書寫文章,還請大家多多包涵,如果有什么改進指教的地方還請指出,非常感謝!

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

推薦閱讀更多精彩內容