Spring에서 properties 사용시 UnsatisfiedDependencyException 해결 방법
1. Exception 발생
DB 연동을 위해 DataSource를 정보를 properties 파일에 정의해두고, @Value
어노테이션을 통해 값을 주입하였다.
프로그램 실행 중 UnsatisfiedDependencyException과 BeanCreationException이 발생하였다. BeanCreationException은 스프링 Bean 객체 생성 중에 예외가 발생하여 Bean 생성이 되지 못하는 예외이다.
- java 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Component
public class Monitoring {
@Value("${code}")
private String code;
@Value("${price}")
private String price;
@Value("${email}")
private String email;
public void run() {
...
}
}
- properties 설정
1
2
code=005930
price=80,000
properties에 email에 해당하는 값이 없어 email에 값이 주입되지 않고 예외가 발생하였다.
2. 해결 방법
1) properties에 값 추가
- properties
1
2
3
code=005930
price=80,000
email=email@email.com
2) 기본값 설정
properties 파일에 값이 입력되지 않았을때 기본으로 주입할 값을 설정해둘 수 있다.
null과 @null의 차이점은 문자열로 인식하느냐 null 값으로 인식하느냐의 차이이다. null로 설정하면 “null” 문자열이 기본값으로 주입되며, @null로 설정하면 null 값이 주입된다. 또한 기본으로 설정해두고 싶은 email을 입력하여도 된다.
- java
1
2
@Value("${email:@null}")
private String email;
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.