Lombok 注解使用场景终极总结

我分成实体类Spring 业务类两种,清清楚楚、绝不混淆。

一、实体类

用注解:

复制代码
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String nickName;
    private String phone;
}

作用:

  • @Data:生成 getter、setter、toString、equals、hashCode
  • @NoArgsConstructor:无参构造(MyBatis/JSON 必须要)
  • @AllArgsConstructor:全参构造(方便 new 对象)

特点:

  • 用于和数据库表对应的类
  • 数据需要读取、修改、传递
  • 不需要构造器注入
  • 字段不加 final(因为值会变)

二、Spring 业务类(@Service / @Controller / @Component 工具)

用注解:

复制代码
@RequiredArgsConstructor

Service 类示例

复制代码
@Service
@RequiredArgsConstructor
public class VoucherOrderServiceImpl extends ServiceImpl<...> {

    private final ISeckillVoucherService seckillVoucherService;
    private final RedisLock redisLock;
    private final RedisIdWorker redisIdWorker;

    // 方法...
}

工具类示例

复制代码
@Component
@RequiredArgsConstructor
public class RedisLock {

    private final StringRedisTemplate stringRedisTemplate;

    // 方法...
}

作用:

  • 只给 final 修饰的字段 自动生成构造器
  • Spring 自动完成构造器注入
  • 安全、规范、官方推荐

特点:

  • 用于服务、控制器、工具类
  • 注入的依赖永远不会改,所以加 final
  • 绝对不用 @Data(不需要 getter/setter)

三、快捷键直接生成构造器

1、先写好成员变量

复制代码
private final StringRedisTemplate stringRedisTemplate;

2、把光标放到这行下面,按快捷键:

Windows / LinuxAlt + Insert

3、弹出菜单选择:Constructor(构造器)

4、勾选 stringRedisTemplate → OK自动就出来了:

复制代码
public RedisLock(StringRedisTemplate stringRedisTemplate) {
    this.stringRedisTemplate = stringRedisTemplate;
}
相关推荐
迷枫71239 分钟前
SQL性能排查记录
java·数据库·sql
渡我白衣1 小时前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
Tisfy4 小时前
LeetCode 1927.求和游戏:抵消+看最值
java·leetcode·游戏·题解·博弈论
Elastic 中国社区官方博客8 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
东风破_8 小时前
从输入 juejin.cn 到看到页面:DNS、Nginx、服务器集群与 CDN 到底在做什么?
后端·mysql
小成很成9 小时前
mysql 8.0.21 升级 mysql 8.0.45(经过生产环境验证)
android·mysql·adb
东风破_9 小时前
从 0 设计一个博客数据库:用户、头像与文章表应该怎么建?
后端·mysql
保定公民10 小时前
达梦数据库存储过程中的数组类型详解:基础数组与记录数组的差异化应用
数据库·达梦·存储过程·达梦数据库·dm8·dm
秋饼10 小时前
JDK 27 企业级 AI 服务落地实战:G1 默认、紧凑对象头、后量子 TLS 与 JFR 脱敏全解析
java·ai·技术分享·后端开发
梦Arrebol10 小时前
Redis 内容及相关实验
数据库·redis