--- title: "02-lombok注解" created: 2025-12-02 tags: - 项目 aliases: - lombok注解 --- # lombok注解 Lombok 是一个 Java 库,用于减少样板代码,特别是在创建 POJO(Plain Old Java Object)类时。它通过注解的方式自动生成 getter、setter、构造函数等常用代码,简化了 Java 开发。以下是一些常用的 Lombok 注解及其功能: ### 1. `@Data` - **功能**: 自动生成 getters 和 setters、`toString()`、`equals()`、`hashCode()` 方法。 - **适用场景**: 用于简单的 Java 对象,包含字段和基本操作。 ```java import lombok.Data; @Data public class User { private Integer id; private String username; private String password; } ``` ### 2. `@NoArgsConstructor` - **功能**: 自动生成一个无参构造函数。 - **适用场景**: 当需要默认构造函数(例如,某些框架可能要求)时使用。 ```java import lombok.NoArgsConstructor; @NoArgsConstructor public class User { private Integer id; private String username; private String password; } ``` ### 3. `@AllArgsConstructor` - **功能**: 自动生成一个包含所有字段的构造函数。 - **适用场景**: 当需要用所有字段初始化对象时使用。 ```java import lombok.AllArgsConstructor; @AllArgsConstructor public class User { private Integer id; private String username; private String password; } ``` ### 4. `@Builder` - **功能**: 支持构建者模式,生成一个构建者类,可以通过流式调用设置属性。 - **适用场景**: 适用于复杂对象的构建,尤其是有很多可选参数的情况。 ```java import lombok.Builder; @Builder public class User { private Integer id; private String username; private String password; } // 使用示例 User user = User.builder() .id(1) .username("john") .password("secret") .build(); ``` ### 5. `@Value` - **功能**: 用于定义不可变类,自动生成所有字段的 getters,且类默认为 final,字段默认为 private final。 - **适用场景**: 用于值对象,确保对象创建后无法修改。 ```java import lombok.Value; @Value public class User { private Integer id; private String username; private String password; } ``` ### 6. `@Getter` 和 `@Setter` - **功能**: 分别用于生成 getters 和 setters,适合对单个字段生成。 - **适用场景**: 当你只需要特定字段的访问方法时使用。 ```java import lombok.Getter; import lombok.Setter; public class User { @Getter @Setter private Integer id; @Getter private String username; @Setter private String password; } ``` ### 7. `@SneakyThrows` - **功能**: 在方法上使用时,自动处理未检查异常,无需在方法签名中声明。 - **适用场景**: 当你想要避免检查异常的处理,但仍想要抛出异常时使用。 ```java import lombok.SneakyThrows; public class UserService { @SneakyThrows public void riskyMethod() { // 可能抛出异常的代码 } } ``` ### 小结 Lombok 提供了许多有用的注解,可以显著减少 Java 代码中的样板代码,提高开发效率。使用 Lombok 时,只需在类上添加所需的注解,Lombok 会自动生成相应的代码。 --- **项目分区导航**: [[01-@PathVariable|@PathVariable]] ⬅️ | 02-lombok注解 | ➡️ [[03-MyBatis-MyBatis-plus|MyBatis-MyBatis-plus]]