关于 RequiredArgsConstructor
所谓 Bean 属性注入,简单点说就是将属性注入到 Bean 中的过程,而这属性既可以普通属性,也可以是一个对象(Bean)
Spring 从 4.0 开始, 就 不 推 荐 使 用 属 性 注 入 模 式 了 ,原因是它可以让我们忽略掉一些代码可能变坏的隐患。
所以,构造器的方法就成了我们的首选。
但是使用构造器注入时,代码会很多。
public class UserController {
private UserService userService;
public UserController(UserService userService){
this.userService = userService;
}
}
这时我们就可以用 @RequiredArgsConstructor 了
把需要注入的属性,修改成 final 类型的(或者使用 @NotNull 注解,不推荐),这些属性将构成默认的构造器。
Java 要求 final 类型的属性必须要初始化,如果没有构造方法代码就会变红。
可以看到修改之后的 IDE,灰色提示也消失了。这样看着也会显得代码简洁一些~
简介
@RequiredArgsConstructor 这个注解可以生成带有必需参数的构造函数。
这个是基于 lombok 的,使用时必须导入lombok包。
需要注意的地方:
必须声明的变量为 final;
2. 根据构造器注入的,相当于当容器调用带有一组参数的类构造函数时,基于构造函数的 DI 就完成了,其中每个参数代表一个对其他类的依赖。基于构造方法为属性赋值,容器通过调用类的构造方法将其进行依赖注入;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端