区别
- @NoArgsConstructor:生成无参的构造方法。
- @AllArgsConstructor:生成该类下全部属性的构造方法。
- @RequiredArgsConstructor:生成该类下被final修饰或者non-null字段生成一个构造方法。
场景
在springboot中,对于一个bean类,注入其他bean的时候,常见的是使用@Autowired,实际上也可以使用构造函数注入,这个时候就可以使用@AllArgsConstructor或者@RequiredArgsConstructor来代替。
代码解析区别
@NoArgsConstructor 默认都知道。
若不知道怎么查看java反编译字节码内容,可以看一下:
总结
上面只是举例了代替@Autowired的例子,实际上在json转化为对象,以及在spring中从配置文件读取配置使用@ConfigurationProperties以及@ConstructorBinding的时候,都可以使用构造函数赋值,都可以用到上面的两个@AllArgsConstructor、@RequiredArgsConstructor。
具体:只要记得,那些字段需要赋值,就把它列进构造方法的参数里面即可。