최대 1 분 소요

문제 상황

org.springframework.boot.SpringApplication - Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘s3Config’: Injection of autowired dependencies failed

S3 설정 클래스 S3Config를 정의해준 뒤 실행했는데 빈 생성을 하지 못했다는 오류가 뜨면서 종료됐다.

해결

코드 단에 노출되면 안되는 값들을 application.yml에 적어놓고 @Value로 값을 가져오도록 설정했었는데, 테스트 환경에서는
설정해놓고 메인으로 넘어갔을 때 application.yml을 같이 업데이트 해주지 않아서 발생한 문제였다. 다음은 @Value로 갑을
application.yml에서 가져오는 코드다.

@Configuration
public class S3Config {

    @Value("${cloud.aws.credentials.access-key}")
    private String accessKey;
    @Value("${cloud.aws.credentials.secret-key}")
    private String secretKey;
    @Value("${cloud.aws.region.static}")
    private String region;
    ...
}
  • accessKey, secretKey, region 모두 application.yml에서 값을 가져오고 있음

이렇게 정의한 S3Config를 다른 클래스에서 주입받는 상황이었기 때문에 빈 생성 및 주입해주는 작업이 이뤄져야 했는데
application.yml에서 accessKey, secretKey, region에 대한 값이 없기 때문에 초기화를 할 수가 없다.
그래서 테스트 환경에서 썼던 값들을 application.yml에 업데이트해주니 해결할 수 있었다.

카테고리:

업데이트:

댓글남기기