lombok이 뭔가요?
lombok 라이브러리는 Getter, Setter, Constructor 등을 어노테이션 한 단어 만으로 주입시킬 수 있는 편리한 기능입니다.
어노테이션 프로세서를 사용하여 컴파일 타임에 자동으로 관련 코드를 생성시켜줍니다.
설치하고 적용시켜보자
intelliJ IDEA 기준입니다.
[ grable 빌드 툴을 이용해 추가하는 방법 ]
1. build.gradle 파일에 다음과 같이 문구를 추가합니다.
plugins {
id 'org.springframework.boot' version '2.7.1'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
//lombok 설정 추가 시작
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
//lombok 설정 추가 끝
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
2. setting - plugin - lombok 검색 후 설치합니다. 이후 사진과 같이 Annotation Processors에 들어가서 활성화 시킵니다.
[ start.spring.io에서 dependency에 추가하는 방법 ]
지원하는 기능들
- @RequiredArgsConstructor
final 키워드를 가진 필드의 생성자를 자동으로 만들어주는 어노테이션입니다.
예시1 - spring에서 bean을 자동주입하는 코드. @Autowired는 생성자가 1개일 때 생략 가능함.
@Component
public class OrderServiceImpl implements OrderService {
private final memberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(hello.core.member.memberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
...
}
이전에는 spring framework에서 제공하는 @Autowired를 사용한 생성자 주입 코드를 직접 작정해야 했다면
lombok 라이브러리를 적용한 이후에는,
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final memberRepository memberRepository;
private final DiscountPolicy discountPolicy;
...
}
다음과 같이 @RequiredArgsConstructor만 사용하여 해결할 수 있습니다.
출처
이 자료의 코드는 대부분 "스프링 핵심 원리 - 기본편"를 인용했습니다.
스프링 핵심 원리 - 기본편 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...
www.inflearn.com
'Backend > Spring Basic' 카테고리의 다른 글
[Spring Basic] 스프링의 본질, 다형성에 대해 (0) | 2022.08.17 |
---|---|
[Spring Web] DTO (2) | 2022.08.10 |
[Spring Basic] 빈 스코프 (0) | 2022.08.04 |
[Spring Basic] 빈 생명주기 콜백 (0) | 2022.08.01 |
[Spring Basic] 의존 관계 자동 주입 (0) | 2022.07.29 |