1.这两个注解没什么关系,只是都能让代码更简洁我就写一起了
2.@RequiredArgsConstructor
2.1.现在写@Autowired,Idea编辑器报黄线警告,Spring更推荐构造器注入
2.2.上代码
@RestController
@RequiredArgsConstructor
public class CostCenterController {
final ICostCenterSv costCenterSv;
final FlowRepository defaultFlowRepository;
2.3.@RequiredArgsConstructor
lombok的,会生成一个包含常量(被final标识),和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。
2.4.不能自己注入自己,容易引起循环依赖!
这句话不止针对@RequiredArgsConstructor这个注解,而是针对所有情况
3.@FieldDefaults
@FieldDefaults(level = AccessLevel.PRIVATE,makeFinal = true)
3.1如果不用这个注解,代码里,尤其是实体类里,会出现好多private final xxxx
这个注解的level = AccessLevel.PRIVATE, 标识这个实体类里的属性都是private
makeFinal = true,标识这个实体类里的属性都是final
4.两者结合使用可以让构造器注入代码更简洁
@RestController
@RequiredArgsConstructor
@FieldDefaults(makeFinal = true)
public class CostCenterController {
ICostCenterSv costCenterSv;
FlowRepository defaultFlowRepository;