1. 程式人生 > 其它 >08-SpringBoot實踐小技巧

08-SpringBoot實踐小技巧

spring boot最佳實踐步驟

  1. 引入開發所需要的場景依賴,如要開發快取或是訊息佇列,可以看一下spring boot有沒有這些場景的相關依賴,查詢spring boot有沒有這些場景的依賴可以到這個連結中找,這裡是spring boot官方給定

    https://docs.spring.io/spring-boot/docs/2.4.3/reference/html/using-spring-boot.html#using-boot-starter

    如果這裡面沒有就找其他第三方的依賴

  2. 檢視自動配置了哪些東西(可以選擇看,和開發沒有關係)

    • 可以自己分析,看自己匯入了哪些場景依賴,然後到Libralies目錄中找到spring boot的autoconfiguration包中的某個場景的包,分析哪個自動配置類開啟了配置

    • 但是上面有點麻煩,我們可以在application.propertise檔案中設定,如下

      debug=true
      #表示開啟debug模式,預設是false,開啟後會在控制檯輸出啟用和不啟用的配置類的報告
      #報告中Positive matches:中的是啟用的自動配置類,而且還說明了為什麼生效,即滿足了什麼條件
      #Negative matches:中的是沒有啟用的自動配置類,說明了為什麼不生效的原因
      
  3. 看看是否需要修改其他配置(如連線資料庫我們要修改資料來源,url、username、passworld等)

將一張jpg格式的圖片放到resources資源目錄下,然後在application.properties中配置如下

 這樣就設定ok了
  1. 自定義加入或替換元件,就是建立配置類,在其中使用@Bean、@Component等註解進行新增元件,自己新增的或被框架優先使用

  2. 編寫自定義器 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>