[SPRING] Java Spring :`@ Value` 주석을 사용하여`Environment` 속성을 주입하는 방법은 무엇입니까?
SPRINGJava Spring :`@ Value` 주석을 사용하여`Environment` 속성을 주입하는 방법은 무엇입니까?
다음과 같은 구문을 사용합니다.
@Component
public class SomeClass {
@Inject
private Environment env;
private String key;
@PostConstruct
private void init() {
key = env.getProperty("SOME_KEY_PROPERTY");
}
....
}
일부 필드에 일부 속성을 할당 할 수 있습니다.
이 작업을 수행하는 데 필요한 짧고 간결한 형식이 있습니까?
해결법
-
==============================
1.이 작업을 수행 할 수 있어야합니다 (PropertySourcesPlaceHolderConfigurer가 등록되어 있다고 가정)
이 작업을 수행 할 수 있어야합니다 (PropertySourcesPlaceHolderConfigurer가 등록되어 있다고 가정)
@Value("${SOME_KEY_PROPERTY}") private String key;
-
==============================
2.
@Component public class SomeClass { @Value("#{environment.SOME_KEY_PROPERTY}") private String key; .... }
-
==============================
3.또한 변수가 정의되지 않은 경우에 대비하여 기본값을 제공하는 것이 유용 할 수 있습니다.
또한 변수가 정의되지 않은 경우에 대비하여 기본값을 제공하는 것이 유용 할 수 있습니다.
@Value("${some_property:default_value}") private String key;
그렇지 않으면 some_property가 정의되지 않을 때마다 예외가 발생합니다.
default_value는 비어있을 수도 있습니다.이 경우 some_property가 선택 사항 인 것처럼 동작합니다.
@Value("${some_property:}") private String key;
콜론에 주목하십시오.
기본값에 특수 문자 (점, 콜론 등)가 포함되어 있으면 다음과 같이 SpEL로 묶습니다.
@Value("${some_property:#{'default_value'}}") private String key;
-
==============================
4.환경 변수를 기본값으로 추가해야하는 경우.
환경 변수를 기본값으로 추가해야하는 경우.
@Value("${awsId:#{environment.AWS_ACCESS_KEY_ID}}") @Value("${awsSecret:#{environment.AWS_SECRET_ACCESS_KEY}}")
이것은 두 가지 이전 답변의 조합입니다.
from https://stackoverflow.com/questions/14617181/java-spring-how-to-use-value-annotation-to-inject-an-environment-property by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 데이터 소스 연결 URL 런타임 변경하기 (0) | 2019.02.02 |
---|---|
[SPRING] Tomcat은 web.xml없이 앱을 정확하게 부트 스트랩합니까? (0) | 2019.02.02 |
[SPRING] 어떻게하면 봄 부팅 / mvc에서 오류 처리기 (404, 500 ...)를 만들 수 있습니까? (0) | 2019.02.02 |
[SPRING] 슬래시 (/)가 포함 된 요청을 처리하는 방법 (0) | 2019.02.02 |
[SPRING] JNDI로 스프링 부트에서 다중 데이터 소스 설정하기 (0) | 2019.02.02 |