롬복은 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) 를 비교하는 연산자
'개발 > Spring' 카테고리의 다른 글
[Spring] Security 정리(1) (0) | 2022.05.15 |
---|---|
[Spring]빈 스코프와 Provider (0) | 2022.03.20 |
[Spring]@ComponentScan (0) | 2022.03.12 |
[Spring]AOP(관점지향프로그래밍) 입문 (0) | 2022.02.27 |
[Spring]form을 통해 값을 받을때 클래스와 변수로.. (0) | 2022.02.25 |