[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.]
롬복(Lombok)이란?
코딩을 할 때 getter/setter, 생성자 등 반복되는 코드들이 많을 것이다.
그때 롬복을 사용하면 반복 코드가 없이 getter/setter, 생성자 등을 롬복에서 지원해준다.
(코드가 눈에 안 보여 직관적이지 않아 개발자에 따라 호불호가 갈릴 수 있다.)
설치 방법
1) 스프링 Initializr로 프로젝트 생성 시
디펜던시에 Lombok을 추가해서 생성하기만 하면 된다.
2) 기존 프로젝트에 추가하는 방법
build.gradle에 하단의 코드를 추가해줍니다.
//lombok 설정 추가 시작
configurations{
compileOnly{
extendsFrom annotationProcessor
}
}
//lombok 설정 추가 끝
그리고 dependencies에
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝
이렇게 넣어준 다음
우측 상단의 이 코끼리 모양을 클릭해줍니다.
그리고 라이브러리를 다운이 완료가 되면 External Libraries에서 하단과 같이 들어온 것을 볼 수 있다.
그 후 설정 - 검색창 - Annotation Processors 검색
※빨간 동그라미를 꼭 켜줘야 한다.
사용방법
HelloLombok.java
@Getter
@Setter
@NoArgsConstructor //생성자
public class HelloLombok {
private String name;
private int age;
public static void main(String[] args){
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("test");
String name = helloLombok.getName();
System.out.println("name = " + name);
}
}
어노테이션을 보지 않고 코드만 봤을 때 게터/세터 설정을 안 해줬다.
하지만 위 코드를 실행시켜주면 아래와 같은 결과가 나온다.
@NoArgsConstructor는 매개변수가 없는 기본 생성자 어노테이션이고
@AllArgsConstructor는 모든 필드 값을 매개변수로 받는 생성자고
@RequiredArgsConstructor는 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
보통은 ServiceImpl 클래스에선 final이 붙은 필드에 생성자 주입을 하기 때문에 @RequiredArgsConstructor를 많이 사용하는 것 같다.
(김영한 강사님은 롬복을 기본으로 깔고 쓰신다고 하신다!)
'JAVA > Spring' 카테고리의 다른 글
[Spring] MVC 패턴의 개요 (feat. 사용 예시) (0) | 2022.09.07 |
---|---|
[Spring] Bean 스코프의 종류와 사용법 (싱글톤, 프로토타입) (1) | 2022.09.02 |
[Spring] 스프링 컨테이너가 싱글톤을 보장해주는 이유 (0) | 2022.09.01 |
[Spring] 스프링 컨테이너를 사용해야 하는 이유 (싱글톤 패턴의 문제점 해결) 그리고 주의점 (0) | 2022.09.01 |
[Spring] 기존 코드를 Spring으로 바꾸는 방법 (Configuration, Bean으로 찍먹) (0) | 2022.08.31 |