iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

@Builder

在 Spring Boot 中, @Builder 註解實際上並不是來自 Spring Boot 自身,而是來自於 Lombok 庫。Lombok 是一個 Java 庫,用於通過註解簡化和減少樣板代碼。
@Builder 註解提供了一種使用建造者模式來創建對象的簡單且靈活的方法。

您可以在類上使用 @Builder 註解以簡化對象創建,這特別在處理大量參數或選填參數時非常有用。

@Data
@Builder
public class User {
    private String name;
    private int age;
    private String email;
}

在 Spring Boot 應用程序中,您可能會在各種場景中使用到 @Builder,例如在 REST 控制器中創建 DTO(數據傳輸對象)或在服務層中構建復雜對象。

@RestController
@RequestMapping("/api")
public class UserController {

    @GetMapping("/user")
    public User getUser() {
        return User.builder()
                   .name("Alice")
                   .age(28)
                   .email("alice@example.com")
                   .build();
    }
}

有時候需要初始化包含多個嵌套對象的複雜對象圖,比如:

@Data
@Builder
public class Address {
    private String street;
    private String city;
    private String country;
}

@Data
@Builder
public class Customer {
    private String name;
    private int age;
    private Address address;
}

public class Main {
    public static void main(String[] args) {
        Address address = Address.builder()
                                 .street("123 Main St")
                                 .city("Springfield")
                                 .country("USA")
                                 .build();

        Customer customer = Customer.builder()
                                    .name("Bob")
                                    .age(40)
                                    .address(address)
                                    .build();

        System.out.println(customer);
    }
}

@Builder 註解可以大大簡化對象創建,特別是在處理多個參數或可選參數時。將其與 Spring Boot 結合使用,您可以更靈活和高效地構建和管理應用程序中的對象。要使用 @Builder,請確保在您的項目中已經包含 Lombok 庫並正確配置。


上一篇
Day 5 Lombok 常用註釋
下一篇
Day 7 Builder
系列文
Spring Boot微服務架構:API設計與實現27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言