準備
希望大家跟着源碼實際操作一遍學習
項目Boot-swagger-demo
1、SpringBoot簡介和基本知識
2、 Swagger助力對接和測試
3、SpringBoot緩存註解
相信很多人已經瞭解SpringBoot的概念,在這裏不對贅述SpringBoot的概念,需要的可以查看早期博客SpringBoot簡介
Spring常用web註解
get/post等請求 http://ip:port/api/v1?a=b
@requestParam 用於取url後面的鍵值對,name=a 對應的value是b
get/post等請求 http://ip:port/api/v1/demo http://ip:port/api/{v1}/demo
@PathVariable 取url路徑上對應路徑的值
@ModelAttribute
使用在get請求上類似@requestParam的效果
使用在post請求上是content-type = x-www-form-urlencoded,一種form表單
@requestBody
對應post請求是content-type application/json,用於傳輸json
@RestController 相比@Controller裏面增加了@ResponseBody,即默認返回json格式,http的響應爲json
@RequestMapping 用於設置controller層請求的路徑
@getMapping @postMapping @deleteMapping等等
細分了請求方法類型是GET、POST等;不然也可以在@RequestMapping 參數設置請求類型
CommandLineRunner與PostConstruct
從Java EE5規範開始,Servlet增加了兩個影響Servlet生命週期的註解(Annotation):@PostConstruct和@PreDestroy 而且這個方法不能有拋出異常聲明。被@PostConstruct修飾的方法會在服務器加載Servlet的時候運行,並且只會被服務器調用一次,類似於Servlet的inti()方法。被@PostConstruct修飾的方法會在構造函數之後,init()方法之前運行。被@PreDestroy 修飾的方法會在服務器卸載Servlet的時候運行,並且只會被服務器調用一次,類似於Servlet的destroy()方法。被@PreConstruct修飾的方法會在destroy()方法之後運行,在Servlet被徹底卸載之前。
之前運行@PostConstruct出現問題,發現在@PostConstruct修飾的方法結束之前,web應用無法正常執行,無法處理web請求。
Spring Boot應用程序在啓動後,會遍歷CommandLineRunner接口的實例並運行它們的run方法。也可以利用@Order註解(或者實現Order接口)來規定所有CommandLineRunner實例的運行順序。不過實現CommandLineRunner不會影響其他web請求。
swagger配置和使用
之前寫的SpringBoot集成swagger;可以參考
swaager可以生成一個可視化的API頁面,可以很方便用來自測和聯調測試;
啓動以後大家很方便可以驗證上面講到的web開發常用註解、swagger的使用以及其他知識點。
多環境配置,隨機數
SpringBoot幫我們提供類隨機數、隨機uuid等功能,格式如下
隨機數 ${random.int} ${random.int[10,20]}
SpringBoot緩存
如圖-②使用@EnableCache 註解,可以啓用SpringBoot緩存
上圖講解 :boot-swagger-demo啓動就可運行,可以看到簡單的SpringBoot項目目錄截圖如圖;
配置文件如圖-①,啓動類如圖-②
可以在圖-④配置swagger-ui測試上面講到的常用web註解;
測試CommandLineRunner與PostConstruct
放開圖-② 的testPostConstruct方法,然後運行代碼,
會看到在@PostConstruct註解的方法成功加載的30秒裏;無法訪問項目的web接口;
註釋圖-②,放開圖-③註釋代碼,啓動應用,可以測試CommandLineRunner實現類加載的30秒內;
項目的web接口還可以正常訪問;
多環境配置 : 一般我們會有dev(開發)、uat(測試)、prod(生產)三種配置文件;
我們可以設置spring.profiles.active: uat 加載指定的配置文件,加載對應的配置、
配置加載優先級
SpringBoot配置加載優先級 命令行 > 外部配置文件 > 內部配置文件
驗證方式 外部配置文件
mvn clean install 生成可執行jar
在當前目錄新建config目錄,將yml複製一份到config目錄;
修改config下yml文件端口,然後在命令行java -jar啓動
驗證方式 命令行
java -jar xx.jar --spring.port=10011
簡單瞭解這三種即可,實際上包含大概9種優先級
java -jar boot-swagger-demo-1.0.0-SNAPSHOT.jar --server.port=11011
可以看到命令行指定啓動端口爲11011,而我們配置文件端口爲11001;加載uat環境的配置文件
項目boot-mybatisplus-demo
1、 持久層框架mybatisPlus
2、校驗框架hibernate-validate
3、異步註解@Async
持久化框架MybatisPlus
MybatisPlus官網地址https://mp.baomidou.com/; MybatisPlus是國人基於mybatis開發是持久層框架;
API好用到飛起;自動生成controller、service、dao、bean的代碼;
就算不實用自動生成,Ctrl + C Ctrl +V也很快;牆裏推薦,提高開發速度;
可以參考之前的寫的博客SpringBoot整合MybatisPlus-去xml
校驗框架hibernate-validate
Spring提供的校驗框架,幫我們解脫哪些if else判斷,使用註解的形式好用到飛起;
結合swagger + MybatisPlus 開發速度簡直不要太快 ;
可以在controller層結合註解很方便時使用;具體詳情參考博客,
很抱歉這個博客沒有寫,如果需要留言我推薦一篇與你;
異步註解@Async
使用方法
使用@EnableAsync開始Spring的異步使用
在方法名前面加上@Async即可使用,這樣調用就會變成異步
修飾在方法上,如果需要返回結果,返回類型爲future,通過future.isDone 方法判斷結果返回與否
注意事項
異步方法和調用異步方法的方法不能再同一個類
不能在靜態方法上使用
應用場景
異步場景情況;
多個操作並行執行;
當然對於初學者來說,還有很多知識點需要掌握;
但是先跟着這兩個項目跑起來,可以很快熟悉相關知識,同時加速開發;
Swagger + mybatisPlus + hibernate-validate 應用開發利器!