일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Today
- Total
- springsecurity
- 의존관계 주입
- qualifier
- 라즈베리파이
- HandlerMethodArgumentResolver
- autowired
- 스프링 싱글톤
- 스프링 컨테이너
- 생성자 주입
- Autowired 옵션
- 빈 중복 오류
- 스프링 빈 조회
- 스프링 빈
- Spring interceptor
- Spring
- 도커
- beandefinition
- RequiredArgsConstructor
- 스프링 Configuration
- DI
- 싱글톤 컨테이너
- 롬복 Qualifier
- docker
- DI컨테이너
- UsernamePasswordAuthenticationFilter
- Servlet Filter
- 스프링
- ComponentScan
- 객체지향
- 라즈베리파이4
그날그날 공부기록
lombok(롬복) 설치 & 적용하기 본문
롬복을 사용하면 생성자나 getter, setter 같은 메서드를 자동으로 작성해준다!
프로젝트를 생성할 때 롬복을 적용했다면 바로 사용 가능하지만 그렇지 않을 경우 직접 추가해야 한다.
롬복 적용하기
build.gradle에 롬복을 추가해 준다.
- 제일 바깥쪽에 롬복 설정 코드를 추가한다.
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
- dependencies 안에 롬복 라이브러리를 추가한다.
dependencies {
...
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝
...
}
- 롬복 설치
Intellij에서 롬복을 처음 사용한다면 설치를 해주어야 한다.
맥북 기준으로 preference(⌘+,) → plugin → lombok 검색 후 설치
롬복을 설치했다면 preference에서 Annotation Processors를 검색 → Enable annotation processing을 체크해준다.
설치를 마치고 사용해보았다.
public class Member {
private Long id;
private String name;
private Grade grade;
public Member(Long id, String name, Grade grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
}
이렇게 getter와 setter가 많아 코드가 길고 헷갈리지만 롬복을 사용하면 다음과 같이 줄어든다.
@Getter
@Setter
public class Member {
private Long id;
private String name;
private Grade grade;
public Member(Long id, String name, Grade grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
}
@Getter, @Setter만 적어주면 자동으로 생성된다. ⌘+F12로 확인해보면 메서드가 생성된 것을 확인할 수 있다.
@RequiredArgsConstructor로 final이 붙은 필드를 모아 자동으로 생성자를 추가할 수 있다.
스프링은 생성자가 하나만 있을 경우 @Autowired를 생략할 수 있기 때문에 유용하다.
@Component
@RequiredArgsConstructor
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;
// }
}
@RequiredArgsConstructor를 적고 생성자를 주석처리하였다.
⌘+F12로 메서드를 확인해보면 생성자가 존재하는 걸 확인할 수 있다.
정리
롬복은 자바의 Annotation Processor를 사용해서 컴파일 시점에 코드를 추가해준다.
반복적인 코드를 작성할 필요가 없고 코드의 길이가 줄어들어 눈에 훨씬 잘 들어온다.
기능을 좀 더 잘 사용할 수 있게 나중에 추가로 더 알아봐야겠다.
출처
'Spring 공부' 카테고리의 다른 글
Qualifier을 대체할 수 있는 커스텀 애노테이션 만들기 (0) | 2022.08.09 |
---|---|
스프링 빈 중복 시 오류 & 해결방법 (0) | 2022.08.02 |
왜 생성자 주입 방식을 선택해야 할까? (0) | 2022.07.28 |
@Autowired 옵션 처리 (0) | 2022.07.28 |
스프링의 의존관계 주입 방법 2 (0) | 2022.07.27 |