Java spring mvc restful 一步一步的搭建以及集成swagger萝风,附加源代碼

最近差點(diǎn)被公司開(kāi)了嘀掸,然后好心的hr問(wèn)我愿不愿意換崗位,換崗位就可以留下來(lái)规惰,我想了想睬塌,看看什么崗位吧,我靠,java技術(shù)開(kāi)發(fā)揩晴,這太找樂(lè)了勋陪,我一個(gè).Net開(kāi)發(fā)8年的人才去開(kāi)發(fā)java,首先硫兰,我不會(huì)java诅愚,其次,這個(gè)新部門(mén)沒(méi)有java人員劫映,誰(shuí)帶我违孝?然后我說(shuō),我不會(huì)Java苏研,但是如果有人帶就好等浊,后來(lái)和部門(mén)領(lǐng)導(dǎo)聊了聊腮郊,他說(shuō)不會(huì)沒(méi)關(guān)系摹蘑,可以學(xué),后面還會(huì)招來(lái)一個(gè)會(huì)的轧飞,可以帶你衅鹿,然后我就這么被忽悠進(jìn)來(lái),進(jìn)來(lái)第一天过咬,老大說(shuō)大渤,java的目前可能找不來(lái),因?yàn)槔习鍥](méi)有批下來(lái)預(yù)算掸绞,所以你自己學(xué)習(xí)吧泵三!是不是很坑,然后我就自己研究了一個(gè)星期java spring mvc restful衔掸,其過(guò)程我就不說(shuō)了烫幕,我就說(shuō)我的學(xué)習(xí)成果吧,不是大家講東西敞映,也不是分享较曼,就是自己做個(gè)筆記,以后開(kāi)發(fā)還可以有據(jù)可查振愿!如果有幸被你這位大沤萦蹋看到了,看到我寫(xiě)的不對(duì)的地方請(qǐng)留言冕末,我好改正哈萍歉!

開(kāi)發(fā)工具:spring tool suite

目標(biāo):搭建一個(gè)spring mvc restful

Demo源代碼:https://github.com/TerryZou/Spring_Mvc_Restful_Swagger

(有的人,像我一樣懶得看技術(shù)文章档桃,就喜歡下代碼翠桦,所以我把源代碼放到了github,而且放到了文章的開(kāi)頭,不和別人一樣销凑,喜歡把代碼放后面丛晌,一點(diǎn)也不人性化,呵呵斗幼,如果下了代碼澎蛛,請(qǐng)給贊哦,良心程序員在這里哦)

一蜕窿、打開(kāi)sts谋逻,提示選擇workspace,選擇好了桐经,點(diǎn)擊Launch

二毁兆、在工具欄中一次點(diǎn)擊File > New > Maven Project,然后選擇User default Workspace location 后點(diǎn)擊Next

三阴挣、選擇webapp 1.0后Next

四气堕、GroupId類(lèi)似于工程名字,ArtifactId類(lèi)似于項(xiàng)目名稱(chēng)畔咧,輸入好了之后可以Finish了

五茎芭、你會(huì)在左側(cè)的Package Explore看到項(xiàng)目結(jié)構(gòu)樹(shù),這就是webapp基礎(chǔ)項(xiàng)目了誓沸,我們?cè)谶@基礎(chǔ)上進(jìn)行配置spring mvc梅桩,對(duì)了,其中maven安裝和配置拜隧,我就不寫(xiě)了宿百,我有時(shí)間單獨(dú)寫(xiě)一下maven的配置,畢竟這些都是可以獨(dú)立存在的洪添。

六垦页、不管三七二十一,我們運(yùn)行一下薇组,右擊根目錄依次點(diǎn)擊 Run As > Run on Server外臂,這時(shí)候彈出一個(gè)窗口,根據(jù)你本地安裝的Tomcat版本進(jìn)行選擇律胀,然后Next

七宋光、在Tomcat installation directory 選擇Tomcat安裝的目錄,至于如何安裝Tomcat炭菌,這里不做介紹罪佳。選好了,就Finish黑低。

八赘艳、這時(shí)候把要運(yùn)行的項(xiàng)目添加到右邊酌毡,不運(yùn)行的可以移到左邊,當(dāng)然都選擇也可以蕾管,沒(méi)啥問(wèn)題枷踏。

九、這時(shí)候默認(rèn)創(chuàng)建的項(xiàng)目掰曾,就運(yùn)行起來(lái)了旭蠕,不出意外的情況下,IDE內(nèi)嵌的瀏覽器會(huì)展示一下Helloworld頁(yè)面旷坦。

十掏熬、你會(huì)看到MySpringMvc有個(gè)紅色的叉,這個(gè)我們來(lái)解決一下秒梅,右擊根目錄旗芬,依次點(diǎn)擊 Build Path > Configure Build Path … 在彈出的窗口中左側(cè)選擇 Java Build Path,左側(cè)選擇Libraries 然后點(diǎn)擊Add Library… ,這時(shí)候有彈出一個(gè)窗口捆蜀,選擇 Server Runtime疮丛,然后next

十一、因?yàn)檫\(yùn)行的時(shí)候我們已經(jīng)為項(xiàng)目配置了Tomcat服務(wù)器漱办,所以我們就直接選擇我們配置好的Server就好了这刷。

十二婉烟、添加完了Tomcat Server類(lèi)庫(kù),我們的小紅叉就沒(méi)了娩井,完美!

十三似袁、前面的準(zhǔn)備工作完事洞辣,我們要開(kāi)始配置spring mvc 了,這才是重點(diǎn)昙衅,首先扬霜,打開(kāi)根目錄下的pom.xm,因?yàn)檫@個(gè)項(xiàng)目是通過(guò)maven工具進(jìn)行管理的,所以在pom.xml添加我們所需要的jar包配置而涉,我們的maven,就會(huì)幫我們加載所需要的jar包著瓶!打開(kāi)后,看到pom.xml的默認(rèn)內(nèi)容啼县,如下:

十四材原、在<url></url>節(jié)點(diǎn)后面添加下面的配置

十五、在<dependencies></dependencies>中添加下面的幾個(gè)配置

1
2
3
4
5

十六季眷、這樣pom.xml配置完了余蟹,我么就配置web.xml文件,在WEB-INF目錄下子刮,下面是默認(rèn)內(nèi)容:

十七威酒、然后把默認(rèn)內(nèi)容全刪了,把下面的內(nèi)容復(fù)制上

1
2

十八、在WEB-INF中創(chuàng)建springMVC-servlet.xml文件葵孤,然后復(fù)制下面的內(nèi)容

1
2

十九担钮、在WEB-INF中創(chuàng)建applicationContext.xml文件,然后復(fù)制下面的內(nèi)容:

二十尤仍、在WEB-INF中創(chuàng)建log4j.properties文件裳朋,然后復(fù)制下面的內(nèi)容:

二十一、在src/main/java下創(chuàng)建jar包c(diǎn)om.meme.mymvc.restfulapi

二十二吓著、在com.meme.mymvc.restfulapi下創(chuàng)建UserController.java類(lèi)文件鲤嫡,并寫(xiě)下列代碼用來(lái)測(cè)試。

二十三绑莺、運(yùn)行項(xiàng)目暖眼,然后在瀏覽器輸入http://localhost:8080/MySpringMvc/hi和http://localhost:8080/MySpringMvc/say/hello,瀏覽器會(huì)分別輸出下列結(jié)果

1
2

二十四纺裁、至此我們spring mvc就搭建完了诫肠,下面在com.meme.mymvc.restfulapi包里創(chuàng)建一個(gè)User.java實(shí)體類(lèi)

二十五、再把UserController.java添加下面代碼欺缘,用來(lái)展示Restful風(fēng)格的api

1
2
3
4

到這里栋豫,我們的spring mvc restful 框架就完事了。下面我們?cè)賮?lái)集成swagger谚殊,用來(lái)生成api接口說(shuō)明

一丧鸯、下載swagger,3.0一下嫩絮,2.0以上的版本丛肢,下載地址:https://github.com/swagger-api/swagger-ui/tree/v2.2.10

二、在整合之前剿干,需要把所有使用到的依賴包全部引入

三蜂怎、在src/main/java下創(chuàng)建jar包c(diǎn)om.meme.mymvc.config

四、在com.meme.mymvc.config下創(chuàng)建SwaggerConfig.java類(lèi)文件置尔,通過(guò)java編碼的方式實(shí)現(xiàn)配置

五杠步、在配置文件springMVC-servlet.xml 插入<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig"/>和<bean class="com.meme.mymvc.config.SwaggerConfig"/>

六、解壓下載的swagger榜轿,然后把里面的dist文件夾中的內(nèi)容復(fù)制到/WEB-INF/swagger中幽歼,沒(méi)有swagger文件夾就自己創(chuàng)建嘍,同時(shí)在springMVC-servlet.xml 文件中添加<mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>用來(lái)資源訪問(wèn)差导。

七试躏、修改swagger/index.html文件,默認(rèn)是從連接http://petstore.swagger.io/v2/swagger.json獲取 API 的 JSON设褐,這里需要將url值修改為http://{ip}:{port}/{projectName}/api-docs的形式颠蕴,{}中的值根據(jù)自身情況填寫(xiě)泣刹。比如我的url值為:http://localhost:8083/arrow-api/api-docs

八、好了犀被,最后呢椅您,在我們的接口出打上標(biāo)記吧。@ApiOperation注解對(duì)這個(gè)方法進(jìn)行了說(shuō)明寡键,@ApiParam注解對(duì)方法參數(shù)進(jìn)行了說(shuō)明坝辫。關(guān)于這兩個(gè)注解的使用吨娜,可以參看源碼。這樣子,Swagger就可以掃描接口方法咐柜,得到我們自定義的接口說(shuō)明內(nèi)容徘钥。

九臭胜、運(yùn)行項(xiàng)目在瀏覽器輸入 http://localhost:8080/MySpringMvc/swagger/index.html就可以看到效果了录语。

這就是我這一個(gè)星期學(xué)習(xí)的收獲,我沒(méi)有說(shuō)啥原理注服,代碼也是截圖韭邓,因?yàn)檫@個(gè)簡(jiǎn)書(shū)編輯器,貼代碼有問(wèn)題溶弟,我就不貼代碼了女淑。其中的過(guò)程還有很多遇到的問(wèn)題,我就不說(shuō)了辜御,我只是來(lái)總結(jié)做筆記的鸭你,有啥問(wèn)題,歡迎留言交流哦我抠!晚安N尽M嗉搿菜拓!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笛厦,隨后出現(xiàn)的幾起案子纳鼎,更是在濱河造成了極大的恐慌,老刑警劉巖裳凸,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贱鄙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡姨谷,警方通過(guò)查閱死者的電腦和手機(jī)逗宁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)梦湘,“玉大人瞎颗,你說(shuō)我怎么就攤上這事件甥。” “怎么了哼拔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵引有,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我倦逐,道長(zhǎng)譬正,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任檬姥,我火速辦了婚禮曾我,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘健民。我一直安慰自己您单,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布荞雏。 她就那樣靜靜地躺著虐秦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凤优。 梳的紋絲不亂的頭發(fā)上悦陋,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音筑辨,去河邊找鬼俺驶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棍辕,可吹牛的內(nèi)容都是我干的暮现。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼楚昭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼栖袋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起抚太,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤塘幅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尿贫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體电媳,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年庆亡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾乓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡又谋,死狀恐怖拼缝,靈堂內(nèi)的尸體忽然破棺而出括享,到底是詐尸還是另有隱情,我是刑警寧澤珍促,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布铃辖,位于F島的核電站,受9級(jí)特大地震影響猪叙,放射性物質(zhì)發(fā)生泄漏娇斩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一穴翩、第九天 我趴在偏房一處隱蔽的房頂上張望犬第。 院中可真熱鬧,春花似錦芒帕、人聲如沸歉嗓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鉴分。三九已至,卻和暖如春带膀,著一層夾襖步出監(jiān)牢的瞬間志珍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工垛叨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伦糯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓嗽元,卻偏偏與公主長(zhǎng)得像敛纲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剂癌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理淤翔,服務(wù)發(fā)現(xiàn),斷路器珍手,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 要加“m”說(shuō)明是MB办铡,否則就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms8...
    dadong0505閱讀 4,811評(píng)論 0 53
  • 我熱愛(ài)的事物, 發(fā)霉的底片琳要, 凌晨的酒, 不可觸摸的時(shí)刻從指尖滑過(guò)秤茅, 人們?yōu)橐严诺氖挛锶淌芡纯唷?我熱愛(ài)的事物稚补,...
    BaivyBBai閱讀 385評(píng)論 0 0