Lombok之@RequiredArgsConstructor

1. @RequiredArgsConstructor是什么?

@RequiredArgsConstructor 是 Lombok 提供的一个注解,用于自动生成构造函数。这个构造函数只包含那些被声明为 final 或者标注了 @NonNull 的字段,从而确保这些字段在对象创建时必须被初始化,以避免潜在的空指针异常等问题。

2. 通过@RequiredArgsConstructor简化Bean注入

通过类的构造函数来注入依赖。这是最推荐的方式,尤其是在依赖是强制性的情况下。

Spring 使用构造器注入的方式将 OpenAiStreamClient 类型的 Bean 注入到 SseServiceImpl 中。将可以简化@Autowired 的书写过程, 即不需要再通过@Autowired 或者@Resource 进行Bean注入

二、@RequiredArgsConstructor的使用方式

1、引入依赖

1
2
3
4
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

2、代码示例

2.1、常规 @Autowired注入:

1
2
3
4
5
6
7
8
9
10
11
12
13
@RestController
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;

@GetMapping("/getUser")
public User getUser(){
User user = userService.getUser("1");
return user;
}
}

常规构造器注入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RestController
@RequestMapping("/user")
public class UserController {

private UserService userService;

public void setUserService(UserService userService) {
this.userService = userService;
}

@GetMapping("/getUser")
public User getUser(){
User user = userService.getUser("1");
return user;
}
}

2.3、lombok中的RequiredArgsConstructor注入:

可以看到,使用 @RequiredArgsConstructor 省去了 @Autowired@Resource 注解。

1
2
3
4
5
6
7
8
9
10
11
12
13
@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class UserController {

private final UserService userService;

@GetMapping("/getUser")
public User getUser(){
User user = userService.getUser("1");
return user;
}
}

参考:https://blog.csdn.net/q2qwert/article/details/140683375


Lombok之@RequiredArgsConstructor
http://example.com/Lombok之-RequiredArgsConstructor/
作者
Panyurou
发布于
2025年7月17日
许可协议