FrameWork/Spring
@RequiredArgsConstructor
titlejjk
2023. 7. 16. 22:27
@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은 정말 간편한 라이브러리같다..
하지만 무분별하게 사용하지 않는 것이 좋을 것 같다는 느낌을 받았다..