不經(jīng)意從寫安卓吴攒,到寫后臺(tái)的過(guò)度镣隶,希望能記錄下遇過(guò)的坑帆吻。
技術(shù)架構(gòu)選型王带。
- Spring boot 里面一大堆a(bǔ)utoConfiguration盟戏,可以說(shuō)是開箱即用窩蝇摸。(國(guó)內(nèi)有很多優(yōu)秀的框架,如Jfinal 畔况,smartFramework,等等甘磨,但是對(duì)比spring boot 感覺(jué)有優(yōu)勢(shì)都不大。哈哈肺蔚,spring 套件太多了,不用太折騰就配出來(lái)了泼舱。)
- 構(gòu)建工具,如今java界最紅的是严蓖,gradle 和maven 了颗胡,作為安卓開發(fā)者闸迷,選一個(gè)最熟的構(gòu)建,所以我選了gradle。
- ORM 層茅信,這點(diǎn)我是體驗(yàn)最深的了。spring boot 官方推薦的是JPA 但是鑒于團(tuán)隊(duì)熟練使用框架為主鼻疮,有的是mybatis 崭篡,有的是hibernate 滴某,根據(jù)自己團(tuán)隊(duì)熟悉的配合使用杀怠。(千萬(wàn)別搞特殊椰憋,影響項(xiàng)目進(jìn)度事大)。
- 要深刻理解AOP 和IOC 這兩者的意義赔退。因?yàn)槭煜み@兩個(gè)橙依,你真的可以省下很多代碼的(spring 很多submodule 都是基于這兩個(gè)做出來(lái)的。)硕旗,還可以自定義注解窗骑,節(jié)省很多代碼的。真的很多漆枚。什么登陸校驗(yàn)创译,權(quán)限管理。統(tǒng)一返回值墙基,和統(tǒng)一異常處理软族,swagger 等等。
- 記得遷移項(xiàng)目之前的工具類残制。例如那些base64 和ftp 上傳等等立砸。
- 模塊化項(xiàng)目,目前我是用gradle模塊化項(xiàng)目的初茶。
- 版本控制最好是選用git(分支管理很重要)颗祝。親測(cè)。感覺(jué)svn 真的不好用。
- 封裝統(tǒng)一返回?cái)?shù)據(jù)格式螺戳「楸觯基于AOP 這樣客戶端就可以根據(jù)你返回的錯(cuò)誤碼做正確的處理了。
- 接入swagger中記得里面真的有個(gè)天大的大坑倔幼,我發(fā)現(xiàn)國(guó)內(nèi)很多博客都沒(méi)講述這個(gè)問(wèn)題盖腿。但是我必須要講出來(lái),spring boot 接入swagger ApiModel 無(wú)法被spring識(shí)別凤藏。@RequestParam 然而沒(méi)有什么用奸忽。我查了很多博客和國(guó)外的博客。都沒(méi)說(shuō)到這點(diǎn)揖庄。最后我在swagger github 倉(cāng)庫(kù)里面看到了一段栗菜,api model 無(wú)法被spring識(shí)別。將會(huì)被修復(fù)蹄梢。我折騰了這個(gè)幾天了疙筹。= = !傷心欲絕禁炒。我用的swagger 的包是記得把不同的項(xiàng)目配置寫到resources 分文件保存起來(lái)而咆。
compile("io.springfox:springfox-swagger-ui:2.2.2")
compile("io.springfox:springfox-swagger2:2.2.2")
- 封裝一個(gè)通用的commonService 管理后臺(tái)的模塊。這個(gè)重用性很高幕袱。配合spring的Bean 你注入什么bean 他就具備那個(gè)表的基礎(chǔ)的增刪改查等等暴备。 6的飛起來(lái),我說(shuō)的是真的们豌。亦可以節(jié)省n 多的代碼涯捻,和解耦窩。
- 使用新技術(shù)的時(shí)候望迎,要記住就是要堅(jiān)持障癌。最后你可以看到不一樣的你。(這篇文章會(huì)記錄我辩尊,寫rest Api 的小小總結(jié)涛浙,將不斷的更新)寫的錯(cuò)誤的地方請(qǐng)各位大神指點(diǎn)。
12.千萬(wàn)別用postMan 測(cè)試base64 圖片上傳摄欲。要不你會(huì)很慘的轿亮。當(dāng)base64解析的時(shí)候。就會(huì)出錯(cuò)了胸墙。