@AllArgsConstructor
💡 @AllArgsConstructor 란?
- Lombok에서 제공하는 어노테이션 중 하나
- 모든 필드 값을 파라미터로 받는 생성자를 만든다. 1
💡 @AllArgsConstructor를 지양하는 이유
1️⃣ 기존 코드
@AllArgsConstructor
class Person {
private String name;
private int age;
}
2️⃣ 기존 코드로 인스턴스 생성
Person person = new Person("김철수", 25);
3️⃣ 다른 개발자가 기존 코드의 필드 순서를 바꾸게 되는 경우
@AllArgsConstructor
class Person {
private int age;
private String name;
}
- @AllArgsConstructor 는 필드 순서대로 생성자를 만들기 때문에 아래와 같은 생성자 메서드가 만들어 진다.
private Person(int age, String name) {
this.age = age;
this.name = name;
}
4️⃣ 기존 필드 순서대로 person 객체를 만들고 있던 코드에서는 오류가 발생한다.
Person person = new Person("김철수", 25); // 오류 발생
요약
1. @AllArgsConstructor는 모든 생성자를 필드 순서대로 만든다.
2. 필드 순서가 바뀌었는데 타입이 똑같을 경우 값이 잘못 들어가는데도 컴파일 오류가 나지 않는다.
참고 사이트
https://velog.io/@skb0516/AllArgsConstructor를-지양하는-이유-그리고-Builder와-함께-쓸-때
@AllArgsConstructor를 지양하는 이유 그리고 @Builder와 함께 쓸 때
저는 @AllArgsConstructor(access = AccessLevel.PRIVATE) 쓸 듯 !
velog.io
주석 출처
'심화 > Spring' 카테고리의 다른 글
| [Gemini AI] Spring Boot와 Gemini API 활용한 AI 상품 설명 기능 구현 (4) | 2025.10.15 |
|---|---|
| [Spring] 영속성 컨텍스트의 기능 (업데이트 중..) (0) | 2025.10.14 |
| [Spring] JPA와 영속성 컨텍스트 (0) | 2025.10.06 |
| [Spring] JPA란 무엇일까? (0) | 2025.10.03 |
| [Spring] IoC Container와 Bean (0) | 2025.10.02 |