인프런 강의 中
김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다.
이전 시간에 의존관계 자동 주입 종류와 생성자 주입을 사용해야하는 이유에 대해서 학습했다. 이번 시간에는 자동 주입 대상을 옵션으로 처리하는 방법과 lombok을 활용하는 방법에 대해서 알아보겠다. 김영한 강사님의 강의를 들으면서!
목차
- 옵션 처리
- Lombok
1. 옵션 처리
주입할 스프링 빈이 없어도 동작해야 할 때가 있다.
그런데 @Autowired만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다.
자동 주입 대상을 옵션으로 처리하는 방법은 다음과 같다.
- @Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨
- org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다.
- Optional<> : 자동 주입할 대상이 없으면 Optional.empty가 입력된다.
예제
스프링 빈에 등록되지 않은 Member 클래스를 가지고 각 옵션들이 자동 주입할 대상이 없을 때 어떤 결과를 리턴하는지 테스트 해보았다.
위에서 작성한 옵션 처리 방법과 동일한 결과가 나오는 것을 확인할 수 있다.
2. Lombok
사실 스프링으로 개발을 한 적이 있는 사람이라면 lombok을 거의 다 사용해보았을 것이다. 그래서 lombok이 가져다 주는 편리함을 필자가 말 안해도 알것이다. 그래서 간략하게 intellij에서 lombok을 설정하는 법과 lombok으로 생성자 주입 코드를 간략하게 해주는 것만 정리해 보겠다.
Lombok 설정
1) build.gradle 파일 설정
2) plugin에서 Lombok install
- File -> Settings에서 Plugins 검색 후 Lombok install
3) annotation processors에서 Enable 설정
- File -> Settings에서 annotation processors 검색 후 Enable 체크
Lombok을 통한 생성자 주입
Lombok을 사용할 수 있도록 설정했으니 얼마나 코드가 간단해지는지 생성자 주입 코드를 통해 확인해보자!
lombok을 사용한 코드를 보면 기존 코드에서 작성했던 생성자 부분을 빼고 @RequiredArgsConstructor로 대체했다. 지금 생성자 주입을 2개만 해서 엄청난 실감은 나지 않지만 더 많아지면 그 만큼 lombok을 효과가 올라간다... 그저 빛..
필자는 @Getter @Getter @Tostring을 많이 사용하기 때문에 lombok의 힘을 더 느끼고 정말 좋아한다. lombok 강력 추천!!
!!김영한 강사님 강의
'스프링 > SpringBasicCore' 카테고리의 다른 글
Section8 빈 생명주기 콜백 (0) | 2024.03.18 |
---|---|
Section7(3편) 의존관계 자동 주입 시 문제 상황 및 대처 방법 (0) | 2024.03.11 |
Section7(1편) 의존관계 자동 주입 종류 (3) | 2024.03.08 |
Section6 Component Scan (0) | 2024.02.26 |
Section5 Singleton (0) | 2024.02.21 |