关于@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

posted @ 2023-07-19 10:17  远道而重任  阅读(1141)  评论(0编辑  收藏  举报