Lombok
- 최근에는 생성자를 딱 1개 두고,
@Autowired
를 생략하는 방법을 주로 사용
- Lombok 라이브러리의
@RequiredArgsConstructor
함께 사용하면 기능은 다 제공하면서, 코드는 깔끔하게 사용할 수 있음
기본 코드
@Component
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
}
Lombok 라이브러리의 @RequiredArgsConstructor 사용 코드
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
Lombok 적용 방법
build.gradle
에 라이브러리 및 환경 추가
plugins {
id 'org.springframework.boot' version '2.3.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
- Windows: File - Settings - 'plugin lombok' 검색 설치 실행 (재시작)
- File - Settings - 'Annotation Processors' 검색 'Enable annotation processing' 체크 (재시작)
- 임의의 테스트 클래스를 만들고
@Getter
, @Setter
확인
Reference
[인프런] 스프링 핵심 원리 - 기본편