728x90
스프링 공부를 시작한지 얼마 되지 않았지만, 좋은 기회로 토이프로젝트에 서버개발자로 참여하게 되었다!
스프링부트를 완전 조금씩 찍먹해보기만 한 지금의 나는 코드를 보면서 모르는 애노테이션과 용어들이 정말 많았다. 그래서 일단은 모르는 부분들을 모두 정리하려고 한다.
이 게시물은 우선 애노테이션들을 기록하려고 한다. 순서는 다음가 같다.
- @NoArgsConstructor와 @AllArgsConstructor
- @Data
- @Builder
1. @NoArgsConstructor, @AllArgsConstructor
- @NoArgsConstructor : 파라미터가 없는 기본 생성자를 생성함
- @AllArgsConstructor : 모든 필드값을 파라미터로 받는 생성자를 생성함
- @RequiredArgsConstructor : final이나 @NonNull 인 필드에 대한 생성자를 생성함
@NoArgsConstructor
@AllArgsConstructor
public class Member {
private String name;
private int age;
private String address;
}
위와 같이 클래스를 만들었을 때 아래와 같이 객체를 생성한다.
Member member1 = new Member(); // @NoArgsConstructor
Member member2 = new Member("kim", 20, "Seoul"); // @AllArgsConstructor
2. @Data
@Data 는 @Getter / @Setter, @EqualsAndHashConde, @RequiredArgsConstructor, @ToString 를 합쳐놓은 애노테이션이다. 이 애노테이션만 써두면 생성자, getter setter가 해결되므로 간편하지만, callSuper, includeFieldName, exclude와 같은 파라미터와 같이 사용될 수 없기 때문에 이같은 파라미터를 사용해야 한다면 개별 애노테이션을 명시하면 된다.
추가로, @EqualsAndHashConde 는 equals(), hashCode() 메소드를 생성해준다.
3. @Builder
생성자를 이용해 객체를 생성할 떄에는 다음과 같은 단점이 존재한다.
- 파라미터가 많아지면 가독성이 떨어진다
- 값을 넣는 순서가 영향을 미친다.
이를 해결할 수 있는 방안이 builder이다.
builder() 로 시작하여 값을 넣고 build()를 이용해 객체를 생성해주면 된다.
@Builder
public class Member {
private String name;
private int age;
private String addr;
}
객체에 @Builder를 단 후 객체를 생성할 떈 아래와 같이 하면 된다.
Member member = Member.builder()
.name("kang")
.age{20}
.addr("Seoul")
.build();
다음 게시글에서는 DTO와 DAO에 대해 작성할 예정이다.
'백엔드 > 스프링' 카테고리의 다른 글
| [Spring] JAVA 로깅 알아보기 (로그레벨, @Slf4j) (0) | 2024.04.03 |
|---|---|
| [Spring] 용어정리 - DTO, DAO, TDD (0) | 2024.03.29 |
| [Spring] 5. 빈 생명주기 콜백- 스프링 핵심원리 기본편 (1) | 2024.02.09 |
| [Spring] 4. 자동으로 의존관계 주입하기 - 스프링 핵심원리 기본편 (2) | 2024.02.07 |
| [Spring] 3. 싱글톤 컨테이너 - 스프링 핵심원리 기본편 (1) | 2024.02.05 |