Notice
Recent Posts
Recent Comments
Link
꾸준한 개발일기
Lombok과 @RequiredArgsConstructor란? 본문
반응형
Lombok이란?
- Lombok은 자바 코드에서 보일러플레이트(boilerplate) 코드를 줄여주는 라이브러리로 Getter, Setter, toString, 생성자 등을 자동으로 생성함
- 코드를 더 간결하게 만들고 유지보수를 쉽게 할 수 있도록 도와줌
@RequiredArgsConstructor란?
@RequiredArgsConstructor는 final이 붙은 필드나 @NonNull이 붙은 필드를 매개변수로 받는 생성자를 자동으로 생성.
즉, 필수 필드만 받는 생성자를 만들 때 사용함
사용 예시
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class MemberService {
private final MemberRepository memberRepository; // 생성자 자동 생성됨
}
위 코드에서 @RequiredArgsConstructor가 자동으로 아래와 같은 생성자를 만들어 줌.
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@RequiredArgsConstructor를 사용하는 이유
- 생성자 코드를 직접 작성할 필요가 없음 → 코드 간결화
- 불변성 유지
- final 필드를 선언하면 생성자를 통해 반드시 값을 설정해야 함 → NullPointerException 방지
- DI(의존성 주입) 편리
- Spring에서 @Autowired 없이 생성자 주입을 쉽게 사용 가능
@RequiredArgsConstructor vs @AllArgsConstructor vs @NoArgsConstructor
어노테이션 | 생성자 타입 | 설명 |
@RequiredArgsConstructor | 필수 필드(final, @NonNull 필드) | 가장 많이 사용됨 |
@AllArgsConstructor | 모든 필드 포함 | 전체 필드를 받는 생성자 생성 |
@NoArgsConstructor | 기본 생성자 | 파라미터 없는 생성자 생성 |
@RequiredArgsConstructor // final 필드만 포함
@AllArgsConstructor // 모든 필드 포함
@NoArgsConstructor // 기본 생성자
public class MemberService {
private final MemberRepository memberRepository;
private String name;
}
결론
- @RequiredArgsConstructor는 필수 필드만 받는 생성자를 자동으로 만듦
- Spring과 함께 사용할 때 유용하며, @Autowired 없이 생성자 주입 가능
- @AllArgsConstructor, @NoArgsConstructor와 비교하여 불필요한 생성자 생성 방지
반응형
'Programing > 스프링' 카테고리의 다른 글
컴파일 오류(Compile), 런타임(Runtime Error), 논리 오류(Logic Error)란? (0) | 2025.03.24 |
---|---|
스프링 의존관계 자동 주입 4가지 방법은? (0) | 2025.03.23 |
@Service 안 "비즈니스 로직"이란? (0) | 2025.03.22 |
스프링(Spring)과 스프링 부트(Spring Boot)의 차이 (0) | 2025.03.22 |
@Configuration이란? (0) | 2025.03.21 |
Comments