반응형
클래스를 만들 때, final 필드나 @NonNull 필드를 반드시 초기화해야 할 때가 많습니다.
이럴 때 Lombok의 @RequiredArgsConstructor를 사용하면,
필요한 필드만 받아서 초기화하는 생성자(constructor)를 자동으로 만들어줍니다.
📌 예제 코드
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public class HelloLombok {
private final String hello;
private final String lombok;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok("헬로", "롬복");
System.out.println(helloLombok.getHello() + "\t" + helloLombok.getLombok());
}
}
💬 코드 설명
- @RequiredArgsConstructor
클래스에 이 애너테이션을 붙이면,
모든 final 필드와 @NonNull 필드만을 파라미터로 받는 생성자가 자동 생성됩니다. - private final String hello, lombok;
final로 선언된 두 필드는 반드시 생성자를 통해 값이 할당되어야 합니다. - main 메서드
- HelloLombok("헬로", "롬복")와 같이, 두 값을 생성자 인자로 전달하여 객체를 만듭니다.
- 두 필드의 값을 출력합니다.
- getter 메서드 사용
예제 코드에는 getter 메서드가 명시적으로 없으므로,
실제로 컴파일이 되려면 @Getter 애너테이션을 추가하거나,
IDE에서 직접 getter 메서드를 생성해야 정상 동작합니다.
💻 실행 결과
헬로 롬복
(생성자에 전달된 값이 그대로 출력됩니다.)
💡포인트 정리
- @RequiredArgsConstructor는 final 필드 초기화용 생성자를 자동으로 만들어준다.
- 생성자를 직접 작성할 필요가 없어서,
코드가 훨씬 간단해진다. - getter/setter가 필요하다면, @Getter/@Setter 애너테이션을 함께 사용하면 된다.
📌정리하자면, @RequiredArgsConstructor를 사용하면
불변성(immutable)을 유지해야 하는 클래스도 손쉽게 만들 수 있습니다.
생성자 관련 반복 코드를 줄이고, 더 안전하고 명확한 객체 생성을 도와주는 좋은 습관입니다.
'Spring > 실습 정리' 카테고리의 다른 글
Spring Boot 7강 - JPA 엔티티와 관계 매핑(Question & Answer 예제) (2) | 2025.06.30 |
---|---|
Spring Boot 6강 - JPA & H2 데이터베이스 연동을 위한 dependencies 추가와 application.properties 설정 (0) | 2025.06.30 |
Spring Boot 5강 - 컨트롤러에서 HTML 코드 직접 반환하기 (0) | 2025.06.30 |
Spring Boot 3강 - Lombok으로 Getter/Setter 자동 생성하기 (0) | 2025.06.30 |
Spring Boot 2강 - Lombok 설치 및 Gradle 설정법 (1) | 2025.06.30 |
Spring Boot 1강 - HelloController로 첫 번째 웹 응답 만들기 (0) | 2025.06.30 |