본문 바로가기

개발/Spring

[Spring] lombok 어노테이션

@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