08-SpringBoot實踐小技巧
spring boot最佳實踐步驟
-
引入開發所需要的場景依賴,如要開發快取或是訊息佇列,可以看一下spring boot有沒有這些場景的相關依賴,查詢spring boot有沒有這些場景的依賴可以到這個連結中找,這裡是spring boot官方給定
如果這裡面沒有就找其他第三方的依賴
-
檢視自動配置了哪些東西(可以選擇看,和開發沒有關係)
-
可以自己分析,看自己匯入了哪些場景依賴,然後到Libralies目錄中找到spring boot的autoconfiguration包中的某個場景的包,分析哪個自動配置類開啟了配置
-
但是上面有點麻煩,我們可以在application.propertise檔案中設定,如下
debug=true #表示開啟debug模式,預設是false,開啟後會在控制檯輸出啟用和不啟用的配置類的報告 #報告中Positive matches:中的是啟用的自動配置類,而且還說明了為什麼生效,即滿足了什麼條件 #Negative matches:中的是沒有啟用的自動配置類,說明了為什麼不生效的原因
-
-
看看是否需要修改其他配置(如連線資料庫我們要修改資料來源,url、username、passworld等)
-
要怎麼修改,可以參照官方文件修改配置項,如官網中的Application Properties中有很多場景的核心配置說明
-
第二種就是自己到spring boot的autoconfiguration包下找到對應的場景的自動配置類中,檢視@ConfigurationProperties中繫結字首是什麼,然後到application.properties中修改這個字首的值
-
我們參照文件,自己配置springboot啟動時的那個banner圖,
-
將一張jpg格式的圖片放到resources資源目錄下,然後在application.properties中配置如下
這樣就設定ok了
-
自定義加入或替換元件,就是建立配置類,在其中使用@Bean、@Component等註解進行新增元件,自己新增的或被框架優先使用
-
編寫自定義器 XxxCustomizer這樣的,以後會用到
spring boot的開發小技巧
1、Lombok的使用
在開發中,我們通常都需要建立一些對映實體類,我們需要給每一個實體類建立有參無參的構造方法、set和get方法以及必要時重寫的toString和hashCode方法等,很麻煩,所以就引入了Lombok工具。在專案依賴中匯入Lombok的依賴,然後idea工具中搜索安裝Lombok工具,我們就可以在實體類中添加註解來代替手寫上面所講的東西了。
-
首先匯入Lombok依賴,不用寫版本號,父專案中已經定義好了
<!--Lombok依賴--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
-
在idea中安裝Lombok外掛,然後重啟idea
-
那麼在實體類中使用註解進行代替,具體如下
package com.studymyself.bean; import lombok.*; //使用Lombok外掛後,使用對應註解,在編譯階段會自動新增該類的setter和getter方法 //有參無參構造方法等 @EqualsAndHashCode//為該類在編譯時重寫equals和hashCode方法 @ToString//為該類在編譯時重寫toString方法 @NoArgsConstructor//為該類在編譯時建立所有引數的構造器 @AllArgsConstructor//為該類在編譯時建立所有引數的構造器 @Data//為該類的所有屬性在編譯時新增setter、getter方法 public class User { private String name; private Car car; //要注意的是如果在建立該類物件時,只需要部分引數,這樣的構造方法還得是自己建立 public User(String name){ this.name=name; } }
-
Lombok中有一個日誌功能,我們可以在處理器類上新增@Slf4j註解,就會注入一個log的屬性
package com.studymyself.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController public class MyController { @RequestMapping("/hello") public String myController(){ //使用日誌,log屬性 log.error("警告:請求進來了"); return "你好啊!Spring Boot!"; } }
啟動專案,發起請求,控制檯內容如下
2、dev-tools(Developer Tools:熱部署工具)
當我們修改了專案中的配置檔案和程式碼時,都需要重啟整個專案,使用Ctrl+F10。但是我們在依賴中映入devtools的依賴,以後修改檔案就可以直接CTRL+F9就可以自動部署更新專案了,但是底層原理還是重啟專案,主要功能是我們修改的是靜態資源頁面程式碼(如jsp頁面)時,使用Ctrl+F9是不重啟專案的。但是更新靜態頁面,之前springMVC專案時在執行的下面有個更新resources的選項。但是spring boot中當前是沒有的
<!--熱部署依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>