Loading... 1. 什么是@RequiredArgsConstructor `@RequiredArgsConstructor`是Lombok库中的一个注解,它会自动为所有未初始化的 final 成员变量和 @NonNull 注解的成员变量生成一个构造函数。在 Spring 中,当一个 Bean 需要另一个 Bean 时,它可以通过构造函数注入的方式来获取。Spring IoC 容器会自动检测到这个构造函数将所需的Bean注入进去。 2. @RequiredArgsConstructor的使用方法 2.1 引入Lombok库 首先,需要在项目的构建工具中引入Lombok库的依赖。例如,在Maven项目中,可以在`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency> ``` 2.2 创建Service类 创建一个Service类,例如: ```java import org.springframework.stereotype.Service; @Service public class MyService { public void doSomething() { // 业务逻辑 } } ``` 在上述示例中,我们创建了一个名为`MyService`的Service类,并添加了`@Service`注解。 2.3 创建Controller类 创建一个Controller类,通过构造函数注入Service对象,例如: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor public class MyController { private final MyService myService; @GetMapping("/doSomething") public String doSomething() { myService.doSomething(); return "Success"; } } ``` 在上述示例中,我们创建了一个名为`MyController`的Controller类,并添加了`@RestController`和`@RequiredArgsConstructor`注解。通过`@RequiredArgsConstructor`注解,Lombok会自动生成一个构造函数,将`MyService`对象作为参数注入。 3. 使用Controller调用Service 通过使用生成的构造函数,我们可以方便地在Controller中调用Service的方法。例如,当访问`/doSomething`接口时,会执行`MyService`中的`doSomething()`方法: ```java @RestController @RequiredArgsConstructor public class MyController { private final MyService myService; @GetMapping("/doSomething") public String doSomething() { myService.doSomething(); return "Success"; } } ``` 在上述示例中,我们通过访问`/doSomething`接口,调用了`MyService`中的`doSomething()`方法。 总结: 通过使用`@RequiredArgsConstructor`注解,我们可以简化构造函数的编写,减少冗余的代码。这在Controller中调用Service时特别有用,可以方便地进行依赖注入,提高代码的可读性和可维护性。 最后修改:2024 年 11 月 12 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏