-
Spring - static 변수에 @Value 어노테이션 적용Spring 2022. 9. 5. 18:39반응형
Spring boot에서 application.yml에 저장된 설정값을 가져올 때 @Value Annotation을 사용합니다.
보통은 이런 식으로 @Configuration에서 설정값을 매핑시킵니다.
@Configuration public class AWSConfig { @Value("${cloud.aws.region.static}") private String region; }
그런데 @Component에서 @Value 어노테이션을 설정값을 가져오면 에러가 발생합니다.
@Component public class S3Adapter { @Value("${cloud.aws.region.static}") private String region; }
에러 메시지
Description:
Parameter 0 of constructor in com.example.S3Adapter required a bean of type 'java.lang.String' that could not be found.
Action: Consider defining a bean of type 'java.lang.String' in your configuration.해결 방법은 setter 메소드를 추가해서 변수에 직접 값을 넣을 수 있도록 하면 됩니다.
@Component public class S3Adapter { private static String region; @Value("${cloud.aws.region.static}") public void setRegion(String value) { region = value; } }
반응형'Spring' 카테고리의 다른 글
Spring - JPA cannot simultaneously fetch multiple bags (0) 2022.11.04 Spring - LazyInitializationException: could not initialize proxy – no Session (1) 2022.09.20 Spring - 스프링 부트 PID 파일 생성하기 (0) 2022.07.18 Spring - InvalidDataAccessApiUsageException: No enum constant 에러 (0) 2022.07.13 Spring - Lombok @Data 사용시 boolean 주의할 점 (0) 2022.07.07