lombok.RequiredArgsConstructor bean 注入

文章目录


前言

本文介绍通过lombok.RequiredArgsConstructor 对bean 进行依赖注入,@RequiredArgsConstructor 是 Lombok 框架提供的注解,核心作用:自动为 Java 类生成「只包含必需字段」的构造方法,省去手动编写构造器的代码,让代码更简洁。


一、什么是「必需字段」?

只有满足以下两个条件的字段,才会被纳入自动生成的构造方法:

  • 被 final 修饰(不可变字段,必须初始化)
  • 被 @NonNull 注解修饰(非空字段,必须赋值)

普通字段(既不是 final,也没有 @NonNull)不会被包含在生成的构造方法中。

二、核心作用

  • 自动生成构造方法:编译期自动生成包含所有「必需字段」的构造器,无需手写
  • 强制校验:@NonNull 修饰的字段,会自动生成非空校验(传 null 直接抛空指针异常)
  • 简化代码:替代手动编写构造方法,减少冗余代码

三、和 Lombok 其他构造器注解的区别

注解 作用 包含的字段
@NoArgsConstructor 生成无参构造方法 无字段
@AllArgsConstructor 生成全参构造方法 类中所有字段
@RequiredArgsConstructor 生成必需字段构造方法 仅 final + @NonNull 字段

四、常用场景

Spring 依赖注入(推荐用法)

用在 Service/Controller 上,替代 @Autowired 注入,Spring 4.2+ 支持:

c 复制代码
@Service
@RequiredArgsConstructor
public class UserService {
    // final 修饰,自动注入,无需 @Autowired
    private final UserMapper userMapper;
}

总结

@RequiredArgsConstructor 被 final 修饰, 或者被 @NonNull 注解修饰 ,可以进行spring 进行bean 的依赖注入 。

相关推荐
懒鸟一枚6 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
我命由我123457 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑8 小时前
Sentinel安装
java·后端·微服务
凤凰院凶涛QAQ9 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
掘金_答案10 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
猿与禅10 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
MindUp10 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG47711 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程
程序员天天困11 小时前
优雅记录操作日志:从注解到 SpEL 的全链路实践与开源方案对比
java·后端
战血石LoveYY11 小时前
Integer类型超限,导致数据异常
java·算法