@Getter @Setter
-> class위에 선언해주면, 해당 클래스에서 사용하는 모든 필드의 getter/setter를 자동으로 생성해준다.
만약, 전체를 원하지 않는다면 원하는 해당 필드 위에만 적어주면 된다.
@AllArgsConstructor
-> 모든 필드를 초기화하는 생성자를 자동으로 만들어준다.
@NoArgsConstructor
-> 어떤 변수도 사용하지 않는 기본 생성자를 자동으로 만들어준다.
@RequiredArgsConstructor
->특정 변수만을 사용하는 생성자를 만들어 준다. 생성자 인자로 추가하고 싶다면, 해당 변수위에 @NonNull어노테이션을 추가해주거나, 해당 변수를 final로 선언해주면 된다.
@EqualsAndHashCode
@EqualsAndHashCode 어노테이션을 활용하면 클래스에 대한 equals 함수와 hashCode 함수를 자동으로 생성해준다. 만약 서로 다른 두 객체에서 특정 변수의 이름이 똑같은 경우 같은 객체로 판단을 하고 싶다면 아래와 같이 해줄 수 있다.
(이건 좀 더 이해가 필요할 것 같다. 그래서 언제 활용하는거지...? Join 할때 활용하는 건가? id값이 같으면 Join할 수 있게,,?)
@ToString
스킵
@Data
@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 자동완성 시켜준다. 하지만 너무 무거워서 잘 사용하지 않는다.
@Builder
해당 클래스 위에 선언하면, 객체 생성에 builder패턴을 적용시켜준다.(모든 필드를 다 포함한 생성자이다.)
특정 변수를 포함하는 생성자에 builder패턴을 적용하고 싶다면, 해당 생성자 선언 위에 지정해주면 된다.
builder패턴이란 객체를 생성할 때, new로 생성하는 것이 아니라 .companyName("회사이름").build();이런식으로 생성하는 것이다.
이유는 값을 넣어줄 것과 안넣어줄 것에 구분이 잘가고, 가독성이 훨씬 좋기 때문이다.
'개발 > Spring' 카테고리의 다른 글
Servlet이란 (0) | 2021.04.27 |
---|---|
[Spring] Spring 터미널에서 백그라운드 실행하는 방법 (0) | 2021.04.23 |
[Spring] @ResponseBody란 (0) | 2020.12.26 |
Spring 예제 실행 과정 (0) | 2020.12.26 |
터미널로 Spring실행하는 방법 (0) | 2020.12.26 |