@AllArgsConstructor
是 Lombok 库提供的注解,Lombok 是一个 Java 库,它可以自动为你的类生成构造器、getter/setter、equals/hashCode 和 toString 方法等,从而减少样板代码的编写量。
@AllArgsConstructor
注解放在一个类的定义上时,Lombok 会在编译期间为该类自动生成一个全参构造函数,该构造函数包含类中所有声明的字段作为参数。这对于需要一次性初始化所有字段的对象创建非常方便,特别是在依赖注入(DI)场景下,可以通过构造函数自动装配所有的依赖。
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class User {
private String username;
private String password;
private String email;
}
// 使用 Lombok 后,等同于下面未使用 Lombok 的代码
// public class User {
// private String username;
// private String password;
// private String email;
// public User(String username, String password, String email) {
// this.username = username;
// this.password = password;
// this.email = email;
// }
// // ... getters and setters ...
// }
在 Spring Boot 应用中,结合 @AllArgsConstructor
与 Spring 的依赖注入机制,你可以轻松地通过构造函数注入服务和其他依赖项,无需手动编写构造函数代码。例如,如果你有一个服务类需要注入数据库操作类,那么只需在服务类上使用 @AllArgsConstructor
并声明对应的成员变量即可。Spring 容器会在创建该服务类的 Bean 时自动调用全参构造函数并注入所需的依赖。