Skip to content

Lombok 简化代码(辅助注解)

第三方工具注解,无需手动编写 getter/setter、构造方法、日志对象,大幅简化代码,提升开发效率(需导入 Lombok 依赖)。

注解 作用说明
@Data 整合 @Getter@Setter@ToString@EqualsAndHashCode@RequiredArgsConstructor,一键生成常用方法
@Slf4j 自动注入日志对象 log,可直接使用 log.info()log.error() 打印日志
@NoArgsConstructor 生成无参构造方法
@AllArgsConstructor 生成全参构造方法(所有属性都作为参数)
  1. 导入 Lombok 依赖(Maven)
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
  1. Lombok 注解使用示例
// 1. 实体类(@Data + @NoArgsConstructor + @AllArgsConstructor)
@Data // 自动生成 getter/setter/toString/equals/hashCode
@NoArgsConstructor // 无参构造
@AllArgsConstructor // 全参构造
public class User {
    private Long id;
    private String username;
    private Integer age;
}

// 2. 业务层(@Slf4j 日志)
@Service
@Slf4j // 自动注入 log 对象
public class UserServiceImpl {
    @Autowired
    private UserMapper userMapper;

    @Transactional
    public User addUser(User user) {
        // 使用 log 打印日志(无需手动 new Logger)
        log.info("新增用户:{}", user.getUsername());
        userMapper.insert(user);
        log.info("新增用户成功,ID:{}", user.getId());
        return user;
    }

    public User getById(Long id) {
        log.debug("查询用户,ID:{}", id); // 调试日志
        return userMapper.selectById(id);
    }
}

// 3. 控制层(结合 @Data 实体)
@RestController
@RequestMapping("/lombok")
@Slf4j
public class LombokController {
    @Autowired
    private UserServiceImpl userService;

    @PostMapping("/add")
    public R<User> add(@RequestBody User user) {
        log.info("接收新增用户请求:{}", user);
        User result = userService.addUser(user);
        return R.ok(result);
    }
}