키워드

@RequiredArgsConstructor 란?

벨보이 2022. 2. 8. 10:42

🤔 @RequiredArgsConstructor 란?

기존에 필드주입으로 사용하던 @Autowired 구문을 생성자 주입으로 바꾸려던중 기존에 제대로 알고 사용하지 못했던

@RequiredArgsConstructor 가 필드 생성자가 이미 준비 되어었다는 구문을 확인하고 생성자 주입을 제거하고

필드 주입으로 변경후 @RequiredArgsConstructor를 사용했다.

🧐 처음 코드

public class QnaServiceDef implements QnaService {

private final FileSystemStorageService fileSystemStorageService;
private final ServerDeviceServiceIF serverDeviceService;
private final MessageByLocaleService messageByLocaleService;
private final QnaRepo qnaRepo;
private final QnaAttachedFileRepo qnaAttachedFileRepo;
private final QnaReplyRepo qnaReplyRepo;

@Autowired
public QnaServiceDef(FileSystemStorageService fileSystemStorageService,
                     ServerDeviceServiceIF serverDeviceService,
                     MessageByLocaleService messageByLocaleService,
                     QnaRepo qnaRepo,
                     QnaAttachedFileRepo qnaAttachedFileRepo,
                     QnaReplyRepo qnaReplyRepo){
    this.fileSystemStorageService = fileSystemStorageService;
    this.serverDeviceService = serverDeviceService;
    this. messageByLocaleService = messageByLocaleService;
    this.qnaRepo = qnaRepo;
    this.qnaAttachedFileRepo = qnaAttachedFileRepo;
    this.qnaReplyRepo = qnaReplyRepo;
}

😆  @RequiredArgsConstructor 을 사용한 코드

@RequiredArgsConstructor
public class QnaServiceDef implements QnaService {

    private final FileSystemStorageService fileSystemStorageService;
    private final ServerDeviceServiceIF serverDeviceService;
    private final MessageByLocaleService messageByLocaleService;
    private final QnaRepo qnaRepo;
    private final QnaAttachedFileRepo qnaAttachedFileRepo;
    private final QnaReplyRepo qnaReplyRepo;

 

💪 출처 및 도움주신분들