could not resolve placeholder in value (UnsatisfiedDependencyException) - Java



어플리케이션 기동 시 "could not resolve placeholder in value" 라며 UnsatisfiedDependencyException - BeanCreationException 이 발생할 때가 있다. 
특정 필드에 의존주입이 실패해서 생기는 문제로, 해당 필드에 주입되어야 할 값들이 설정 파일(*.properties, *.xml 등)에 정의되지 않거나 설정 파일 경로가 잘못 되었을 경우 해당 문제가 발생 할 수 있다. 

maven을 사용할 경우, pom.xml의 <resources>부분에 설정된 경로값이 정상적인지, 정상 설정 되었다면 해당 설정 파일안에 값 정의가 제대로 되어 있는지 확인이 필요하다. 


만약 위의 경우 2가지가 아니라면, 혹 IDE 안에 리소스 경로가 빌드 패스 안에 포함이 안되어 있는지 확인이 필요하다. 

*설정 파일 경로인 src/main/resouces 경로가 빌드패스에 빠져 있다(resouces는 오타...)

이 같은 경우는 
프로젝트의 Properties(Package Explorer에서 프로젝트 마우스 우클릭 후 메뉴 선택)>>Java Build Path>>Source 에서 해당 경로가 추가 되어 있는지 확인한다. 안되어 있을 경우 Add Folder 버튼을 통해 해당 경로를 추가 후 적용 후 다시 기동한다. 

-----------------------------------------------------------------------------------------------------------
if you get error message [could not resolve placeholder in value (UnsatisfiedDependencyException)] when you running your java application(Spring Boot...), you have to check the application's setting files. 

1. Check directory paths in setting files. If it does not correct, you have to fix it to accurate paths. 
Ex)if you use maven, check pom.xml file. In there, check <resources> part about is it correct directory path or not. 
2. If path values is correct, check placeholder values are correct or not in files which located in path. 
Ex) check placeholder value(url=http://aaa.com) in application.properties file
3. if uppers are all correct, check your IDE is setted about resources folders are added in build path. 
  *Project properties>>Java Build Path>>Source>>check build path. if resources folders are not added in there, adding it after click Add Folder button




AD_1