티스토리 뷰
반응형
✏️ 접근자/ 설정자 자동 생성
@Getter
- 어떤 필드를 만들면 그 필드에 대한 getter()를 자동으로 생성
- 필드에 선언하면 필드 단위로, 클래스에 선언하면 클래스 단위로 getter()를 생성
@Getter
- 어떤 필드를 만들면 그 필드에 대한 setter()를 자동으로 생성
- 필드에 선언하면 필드 단위로, 클래스에 선언하면 클래스 단위로 setter()를 생성
✏️ 생성자 자동 생성
@NoArgsConstructor
- 파라미터가 없는 기본 생성자를 만들어준다
@AllArgsConstructor
- 모든 필드 값을 파라미터로 받는 생성자를 만들어준다
@RequiredArgsConstructor
- final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어준다
✏️ ToString 메소드 자동 새성
@ToString
- toString() 메소드를 자동으로 생성해준다.
- (exlucde = “필드명”)을 통해 toString() 결과에서 제외시킬 수 있다
✏️ equals, hashCode 자동 생성
@EqualsAndHashCode
- 자바 빈을 만들 때 equals와 hashCode 메소드를 자주 오버라이딩 한다
- callSuper 속성을 통해 equals와 hashCode 메소드 자동 생성 시 부모 클래스의 필드까지 감안할지 안할지에 대해 설정 할 수 있음
- callSuper = true로 설정하면 부모 클래스 필드 값들도 동일한지 체크, callSuper = false로 설정하면 자신 클래스의 필드 값만 고려
@EqualsAndHashCode(callSuper = true)
public class User extends Domain {
private String username;
private String password;
}
User user1 = new User();
user1.setId(1L);
user1.setUsername("user");
user1.setPassword("pass");
User user2 = new User();
user1.setId(2L); // 부모 클래스의 필드가 다름
user2.setUsername("user");
user2.setPassword("pass");
user1.equals(user2);
// callSuper = true 이면 false, callSuper = false 이면 true
✏️ 통합 기능
@Data
- Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션
@Value
- @Data의 변형된 기능
- 모든 필드를 private final로 설정, 클래스를 final로 설정, setter를 생성하지 않는다
✏️ 빌더 패턴
@Builder
- 메소드 체이닝을 이용하는 static 메소드 builder()를 생성한다.
- access : builder()의 접근 제어자 설정(AccessLevel)
- builderClassName : builder의 클래스 이름을 명시적으로 설정
- builderMethodName : builder()의 메소드 이름을 명시적으로 변경
- buildMethodName : build()의 메소드 이름을 명시적으로 변경
- toBuilder : 인스턴스의 현재 값을 가지고 시작하는 builder를 생성
- setterPrefix : Setter 메소드의 이름 앞에 해당 문자열을 붙인다.
✏️ 그 외
@NonNull
- null-check 로직을 자동으로 생성하여 null 값이 넘어온 경우 NullPointerException 발생
- 기본 생성자 대신 해당 필드를 포함한 생성자가 추가됨
@Log, @CommonsLog, @Log4j2, @Slf4j
- 로그 프레임워크를 log라는 이름의 private static final 필드로 생성
반응형
'Back-end > Spring' 카테고리의 다른 글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스택
- 반복문
- 자바
- C++
- 유니온 파인드
- 유클리드 호제법
- BFS
- C++ Stack
- 자바스크립트
- Do it!
- c++ string
- js
- 알고리즘
- html
- 백준
- 카운팅 정렬
- 투 포인터
- 에라토스테네스의 체
- 세그먼트 트리
- DP
- CSS
- HTML5
- 이분 매칭
- 스프링 부트 crud 게시판 구현
- DFS
- 자료구조
- 알고리즘 공부
- java
- 우선순위 큐
- 백준 풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함