lombok을 의존성에 추가하는 방법은 2가지다. 참고 👉 https://projectlombok.org/setup/gradle
1. plugin
plugins {
id "io.freefair.lombok" version "6.6.1"
}
2. 컴파일 중에만 lombok을 추가하도록 compileOnly scope 사용
repositories {
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
testCompileOnly 'org.projectlombok:lombok:1.18.24'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
}
build.gradle에 추가.
초기에 프로젝트 생성할 때 springboot 사이트에 lombok있음.
🧶 설치하기
Prefrences(윈도우 File Settings) plugin lombok 검색 설치 실행 (재시작) 2. Prefrences Annotation Processors 검색 Enable annotation processing 체크 (재시작)
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
@RequiredArgsConstructor는 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
최근에는 생성자를 딱 1개 두고, @Autowired를 생략하는 방법을 주로 사용. 여기에 Lombok라이브러리의 @RequiredArgsConstructor와 함께 사용하면 깔끔한 코드 작성
🍟 lombok의 어노테이션
@Getter | getter 생성 |
@Setter | setter 생성 |
@NoArgsConstructor | 기본 생성자 추가 |
@AllArgsConstructor | 모든 매개변수를 넣은 생성자 추가 |
@RequiredArgsConstructor | final 또는 @NonNull인 필드 값만 파라미터로 받는 생성자 추가 |
@ToString | toString 함수 오버라이딩 {className}{field1=value, field2=value, ...) 형태 @ToString(exclude="변수명")로 제외할 변수 설정할 수 있다. |
@EqualsAndHashCode | 객체의 hashcode에 대한 오버라이딩 |
@Data | 모든 요소(@Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 등)를 자동 생성 무분별한 사용x |
@NonNull | 변수 위에 붙이고, null이 허용되지 않음 |
@Builder | Builder pattern(생성자에 들어갈 매개 변수의 순서를 신경쓰지 않고, 모든 매개 변수를 받은 후 통합해서 한번에 사용)을 사용하는데 유용함 |
🎨 클래스에 @Builder 붙이는 것과 생성자에 붙이는 것의 차이?
생성자를 직접 만들고 @Builder을 붙이는 게 낫다.
클래스에 @Builder을 붙이면 파라미터 순서로 설정하고, 생성자에 붙이면 파라미터명으로 설정된다.
@Builder
public Post(String title, String content, String author, int view){
this.title=title;
this.content=content;
this.author=author;
this.view=view;
}
Post 엔티티에서 생성자에 @Builder을 붙였다.
id는 데이터베이스에서 auto increment되니까 파라미터로 주지 않았다.
참고 👇
https://wiserloner.tistory.com/152
https://hochoon-dev.tistory.com/entry/Java-Lombok-%EC%A0%95%EB%A6%AC
https://cheese10yun.github.io/lombok/
https://www.baeldung.com/lombok-builder
https://kwonnam.pe.kr/wiki/java/lombok/pitfall
'Framework > Spring Boot' 카테고리의 다른 글
[error] Thymeleaf Exception processing template (0) | 2021.06.03 |
---|---|
[Error] java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled. (0) | 2021.05.14 |
error (0) | 2020.12.20 |
AOP 적용 (0) | 2020.12.19 |
AOP가 필요한 상황 (0) | 2020.12.19 |