본문 바로가기

개발/Spring

[Spring]Lombok(롬복)

롬복은 Getter, Setter생성 또는 생성자 코드를 편리하게 할 수 있도록 지원해주는 라이브러리 이다.

스프링에서는 생성자를 통한 주입을 권장하는데, 그럴 경우 @Autowired를 통하 아래와 같이 빈을 주입한다.

개발자의 덕목은 귀찮음 이므로, 이렇게 생성자 코드를 작성하는 부분을 줄이고 싶어진다.

 

그럴 경우 활용할 수 있는 것이 Lombok(롬복)이다.

 

* 먼저 build.gradle에 아래와같이 추가한다.

configurations { compileOnly { extendsFrom annotationProcessor } }

 

* 그리고 dependencies 내에 아래의 dependencie를 추가해준다.

compileOnly 'org.projectlombok:lombok'

annotationProcessor 'org.projectlombok:lombok'

testCompileOnly 'org.projectlombok:lombok'

testAnnotationProcessor 'org.projectlombok:lombok'

 

그리고 생성자 주입이 필요한 부분에 @RequiredArgsConstructor(모든 맴버 변수를 초기화 시키는 생성자) 를 붙여주면..

롬복 라이브러리를 활용한 생성자 주입

 

생성자 부분을 주석처리 하여도 final을 선언한 객체에 오류가 발생하지 않고 정상적으로 생성자 주입이 이루어진다.

 

ps. 또한 앞서 언급했듯이 Getter, Setter를 포함하여 toString 메서드도 간단하게 어노테이션으로 가능하다

추가

1. @Getter와 @Setter를 동시에 선언하려면 @Data 어노테이션을 사용하면 된다. 해당 어노테이션은 게터,세터 뿐만 아니라 @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 모두 포함한다

2. @NorgsConstructor : 파라미터가 없는 기본 생성자 생성
3. @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어 준다.
4. @RequiredArgsConstructor : final이나 @NonNull 인 필드 값만 파라미터로 받는 생성자를 만들어 준다.

5. @EqualsAndHashCode

- equals : 두 객체의 내용이 같은지, 동등성(equality) 를 비교하는 연산자
- hashCode : 두 객체가 같은 객체인지, 동일성(identity) 를 비교하는 연산자