关于@RequiredArgsConstructor使用
1.Lombok官方解释:
@RequiredArgsConstructor为每个需要特殊处理的字段生成一个具有 1 个参数的构造函数。
所有未初始化的final字段都会获取一个参数,以及标记为@NonNull的任何字段,这些字段在声明它们的位置未初始化。
对于那些标有 @NonNull 的字段,还会生成显式空检查。如果用于标记为 @NonNull 的字段的任何参数包含 null,
则构造函数将引发 NullPointerException。参数的顺序与字段在类中的显示顺序相匹配。
2.使用--注入spring容器中的bean用于使用
使用前提:
所有未初始化的final字段:该字段使用final标记并且没有被初始化
@RequiredArgsConstructor
@Service
public class BookServiceImpl implements BookService {
private final ReadingListRepository readingListRepository;
@Override
public Book getById(Long id) {
return readingListRepository.getById(id);
}
}
相当于使用构造器进行注入:
@Service
public class BookServiceImpl implements BookService {
private final ReadingListRepository readingListRepository;
public BookServiceImpl(ReadingListRepository readingListRepository) {
this.readingListRepository = readingListRepository;
}
@Override
public Book getById(Long id) {
return readingListRepository.getById(id);
}
}
参考文献:
lombok官方文档
文档1