微服務應用開發入門②必用組件和必掌握知識點

 

準備

 
環境準備 : 1、maven3.x    2、JDK8   3、開發工具intellij idea   4、lombok插件
 
學習目標: SpirngBoot開發基礎知識、web應用開發必備組件 Swagger + mybatisPlus +  hibernate-validate
 

希望大家跟着源碼實際操作一遍學習

 
 

項目Boot-swagger-demo

 
通過項目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 參數設置請求類型

CommandLineRunnerPostConstruct

從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

  通過項目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 應用開發利器!

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章