
目录:
- @Setter/@Getter
- @Data
- @RequiredArgsConstructor构造函数
- @Builder建造者模式赋值字段
参考/来源:
@Setter/@Getter
自动生成字段的setter和getter方法
@Setter
@Getter
public class user{
  private String name;
  private String age;
}@Data
@Data相当于
- @Getter 
- @Setter 
- @RequiredArgsConstructor 
- @ToString 
- @EqualsAndHashCode - 这5个注解的合集。 
@RequiredArgsConstructor构造函数
- 旧的Spring注入写法 - @RestController @RequestMapping("alarm/configs") public class AlarmConfigController { @Autowired private AlarmConfigService alarmConfigService; ... }
- 这是推荐写法 - @RestController @RequestMapping("alarm/configs") public class AlarmConfigController { private final AlarmConfigService alarmConfigService; @Autowired public AlarmConfigController(AlarmConfigService alarmConfigService) { this.alarmConfigService = alarmConfigService; } ... }- 若是注入的类太多的话呢,看起来挺繁琐的。可以使用Lombok的@RequiredArgsConstructor - @RestController @RequestMapping("alarm/configs") @RequiredArgsConstructor public class AlarmConfigController { //这里必须是final,若不使用final,用@NotNull注解也是可以的 private final AlarmConfigService alarmConfigService; ... }
@Builder建造者模式赋值字段
典型的建造者模式
优点:写法优雅
缺点:最明显的一点,在生成Card实例之前,实际上是先创建了一个Card.CardBuilder实例,这样很明显额外占用了内存。
@Builder
public class Card {
    private int id;
    private String name;
    private boolean sex;
}Card card = Card.builder().id(10).name("dasd").sex(true).build(); 
                     
                     
                        
                        