본문 바로가기
FrameWork/Spring

@RequiredArgsConstructor

by titlejjk 2023. 7. 16.

@RequiredArgsConstructor

 

애너테이션의 특징과 이를 활용한 의존성 주입에 대한 정리와 생각.

 

@RequirdArgsConstructor 애너테이션은 문서를 살펴 보았을 때

초기화 되지 않은 final 필드나,@NotNull 애너테이션이 붙은 필드에 대해 생성자를 생해 주는 기능이 있다.

스프링의 의존성 주입중하나이다.

 

 

아래는 같은 코드 이지만

@RequiredArgsConstructor애너테이션이 있고 없고 차이를 아래 예제를 보면 확실히 체감 가능할 것 같다.

 

먼저 @RequiredArgsConstructor애너테이션을 사용하지 않았을 경우

 

package com.jjk.jjkshop.dto;

import java.beans.ConstructorProperties;

public class RequiredArgsConstructroTest {

    @ConstructorProperties({"firstEx", "secondEx", "thirdEx"})
    public RequiredArgsConstructroTest(FirstEx firstEx, SecondEx secondEx, ThirdEx thirdEx)
        this.firstEx = firstEx;
        this.secondEx = secondEx;
        this.thirdEx = thirdEx;
}

 

아래는 @RequiredArgsConstructor애너테이션 사용했을 경우이다.

 

package com.jjk.jjkshop.dto;

public class RequiredArgsConstructroTest {
    
    private final FirstEx firstEx;
    private final SecondEx secondEx;
    private final ThirdEx thirdEx;
}

 

@RequiredArgsConstructor애너테이션을 통해 편리하게 의존성 주입을 할 수 있다는 것을 배웠다.

Lombok은 정말 간편한 라이브러리같다..

 

하지만 무분별하게 사용하지 않는 것이 좋을 것 같다는 느낌을 받았다..

댓글