Lombok 简化代码(辅助注解)
第三方工具注解,无需手动编写 getter/setter、构造方法、日志对象,大幅简化代码,提升开发效率(需导入 Lombok 依赖)。
| 注解 | 作用说明 |
|---|---|
@Data |
整合 @Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor,一键生成常用方法 |
@Slf4j |
自动注入日志对象 log,可直接使用 log.info()、log.error() 打印日志 |
@NoArgsConstructor |
生成无参构造方法 |
@AllArgsConstructor |
生成全参构造方法(所有属性都作为参数) |
- 导入 Lombok 依赖(Maven)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
- 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);
}
}