Spring Boot - Lombok 설정으로 @Value 필드를 생성자에서 주입 받기
이렇게 설정하게 되면 Spring Boot가 @Value 필드의 자료형 (String, boolean, int, long 등)으로 bean을 찾게 되므로 사용하진 않을 것 같다.
다른 활용 방법이 생긴다면 참고할 수 있도록 기록을 남겨둠!
Service 코드의 테스트 작성 중 @Value 필드를 해결하지 못하는 문제가 발생했다.
@Value 필드를 생성자로 주입 받도록 설정하는 방법을 알게 되어 정리 ✏️
lombok 설정 파일 작성을 통해 @RequiredArgsConstructor 어노테이션 컴파일 시 @Value 필드를 포함시키는 방법
1. lombok.config 파일 작성
lombok.config 파일을 프로젝트 루트 위치
에 생성하고 다음 코드를 추가한다.
1
lombok.copyableAnnotations = org.springframework.beans.factory.annotation.Value
2. @Value 필드 수정
@Value 필드를 private final로 수정하고 소속된 클래스에 @RequiredArgsConstructor 어노테이션을 붙여준다.
1
2
3
4
5
6
7
8
9
10
11
@Slf4j
@RequiredArgsConstructor
@Service
public class SessionUserService {
private final SessionUserRepository sessionUserRepository;
private final RedisTemplate<String, String> redisTemplate;
@Value("${sign-up.key.session}") private final String KEY_SESSION_USER;
@Value("${sign-up.key.email}") private final String KEY_EMAIL;
@Value("${sign-up.key.nickname}") private final String KEY_NICKNAME;
@Value("${sign-up.session.expire}") private final long SESSION_EXPIRE_TIME;
3. build 된 class 파일 확인
프로젝트를 build 한 후에 생성된 class 파일을 확인해보면 생성자에서 @Value 값을 읽어오는 것을 확인 할 수 있다.
참고한 사이트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.