로컬에서 테스트를 전부 통과한 스프링 부트 프로젝트가 CI/CD
를 위해 Github
로 푸시하니까 글 아래 첨부한 오류가 났다. 원인을 파악해보니 CI
할 때 @Value
로 오류가 발생한 것이였다. 상황은 아래와 같다.
.gitignore
한 application-secret.properties
에 있는 값을 @Value
로 값을 바인딩해서 쓰는 클래스가 있었다..gitignore
한 application-secret.properties
있기 때문에 예외가 발생하지 않았다.Github
에는 application-secret.properties
가 없기 때문에 Github Action
이 CI
를 할 때 해당 값을 찾지 못해서 예외가 발생했다.해당 값을 찾지 못했을 때는 default
값을 사용하게 하면 예외를 해결할 수 있다. @Value("${secret.value:not found!}")
와 같이 :
뒤에다가 not found!
라는 default
값을 줘서 해결했다.
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
Caused by: org.springframework.beans.factory.BeanCreationException at AutowiredAnnotationBeanPostProcessor.java:405
Caused by: java.lang.IllegalArgumentException at PropertyPlaceholderHelper.java:180