SpringBoot中的@Accessors(chain = true)注解的作用
时间: 2023-07-13 17:16:18 浏览: 124
@Accessors(chain = true)注解是Lombok框架中的一种注解,在使用该注解后,Lombok会自动生成setter方法,并且这些setter方法的返回值类型是当前对象本身,即返回this,从而实现了链式调用。
在SpringBoot中,我们可以在实体类中使用@Accessors(chain = true)注解来简化代码,例如:
```
@Data
@Accessors(chain = true)
public class User {
private Long id;
private String name;
private Integer age;
}
```
在上面的代码中,我们使用了@Data和@Accessors(chain = true)注解来生成getter和setter方法,并且设置了chain属性为true,表示生成的setter方法返回当前对象本身。
使用@Accessors(chain = true)注解后,我们可以通过链式调用来设置实体类的属性值,例如:
```
User user = new User();
user.setId(1L).setName("张三").setAge(20);
```
这样,我们就可以通过链式调用来设置实体类的属性值,代码更加简洁,可读性和可维护性都得到了提高。
相关问题
springboot @Accessors(chain = true)注解
@Accessors(chain = true) 是 Lombok 提供的一个注解,用于简化代码中的链式调用。在 Spring Boot 中,它通常与其他注解一起使用,例如 @Data、@Getter、@Setter 等。
通过在类上添加 @Accessors(chain = true) 注解,可以生成具
@Accessors(fluent = true) 与 @Accessors(chain = true) 的区别
`@Accessors(fluent = true)` 和 `@Accessors(chain = true)` 都是 Lombok 注解,用于简化 Java 类的 getter 和 setter 方法的编写。它们的区别在于:
`@Accessors(fluent = true)` 会生成没有 `get` 或 `set` 前缀的 getter 和 setter 方法,这样可以使代码更加简洁易读。例如,如果一个属性名为 `name`,使用 `@Accessors(fluent = true)` 注解后,生成的 getter 方法名为 `name()`,setter 方法名为 `name(String name)`。
`@Accessors(chain = true)` 会生成返回对象本身的 setter 方法,这样可以实现链式调用。例如,如果一个属性名为 `age`,使用 `@Accessors(chain = true)` 注解后,可以使用链式调用的方式设置属性值,例如 `user.setAge(31).setName("pollyduan")`。
下面是一个示例代码,演示了 `@Accessors(fluent = true)` 和 `@Accessors(chain = true)` 的用法:
```java
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(fluent = true)
public class User1 {
private Integer id;
private String name;
private Integer age;
}
@Data
@Accessors(chain = true)
public class User2 {
private Integer id;
private String name;
private Integer age;
}
public class Test {
public static void main(String[] args) {
User1 user1 = new User1().id(1).name("pollyduan").age(31);
System.out.println(user1.name()); // 输出:pollyduan
User2 user2 = new User2().setId(1).setName("pollyduan").setAge(31);
System.out.println(user2.getName()); // 输出:pollyduan
}
}
```
阅读全文