iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0

今日目標,讓一些事自動化吧,Maven auto-reload、Hot reload server、使用 Lombok 簡化 Getter & Setter。

Maven auto-reload

每次都要自己手動去 reload 好麻煩啊,好希望有自動的方法~~ 當然有!

  1. 點開旁邊的 maven 視窗
  2. 選擇板手符號,再選 Auto-Reload Settings...
  3. 選擇 Any changes,再按 OK 即可
  4. 我們先往下做其他事情,待會剛好能驗證是否有重加載

Hot reload server

每次都手動重啟 server 好麻煩啊啊啊,這也有自動化嗎?還真的有咧!

  1. 在 pom.xml 裡面加入依賴
    <!-- hot reload -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <version>2.7.2</version>
        <optional>true</optional>
    </dependency>
    
  2. 這時候就會發現他已經在處理了,稍微等他一下應該就可以變灰字,同時也驗證我們上面的 Maven auto-reload 是成功配置的
  3. file -> settings
  4. 選擇 Build, Execution, Deployment -> Compiler -> 勾選 Build project automatically
  5. 選擇 Advanced Settings -> 勾選 Allow auto-make to start even if developed application is currently running
  6. 點選 OK 先啟動 server,再到上次的 hello world 頁面,確認頁面上是 Hello World!
  7. return "Hello World!"; 改成 return "Hello";
  8. 不必重啟 server,等個 3 秒左右,就會發現下面的小黑框又開始跑東西,這就是 reload,等他跑完再回去 hello world 頁刷新一下,就會發現變成 Hello 了

Lombok

Java 最讓人頭痛的就是大量的 Getter 和 Setter,會讓程式碼看起來非常肥,如果有增減成員變數(member variable),就必須再將對應的 Getter & Setter 新增或移除,於是 Lombok 誕生了~~

  1. 加入依賴
    <!-- lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
    
  2. 其實只有第一步,再來介紹怎麼用吧!
    • 修改 UserModel 的程式碼,將其內容改為
      package com.example.user;
      
      import lombok.Getter;
      import lombok.Setter;
      
      import javax.persistence.*;
      
      @Entity
      @Table(name = "user")
      @Getter @Setter
      public class UserModel {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private int id;
      
          @Column(unique = true)
          private String username;
      
          @Column(unique = true)
          private String email;
      
          @Column
          private String password;
      }
      
      • @Getter & @Setter:自動產生對應的 getter 和 setter
        • 如果在類別聲明,就是這個類底下的所有成員變數都會產生
        • 如果只要在特定的成員變數產生,就放在成員變數的上方做聲明即可
        • 不一定兩個都同時用到,可以單用 @Getter 或單用 @Setter
    • 如此一來程式碼變乾淨了,之後就算增減成員變數也不用手動處理~~

參考資料


上一篇
Day 06 - 資料庫
下一篇
Day 08 - 註冊頁面
系列文
Spring Boot... 深不可測31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言