옵션으로서 @Value를 정의하는 방법
스프링빈에는 다음이 들어 있습니다.
@Value("${myValue}")
private String value;
값이 올바르게 삽입되었습니다.단, 변수는 옵션이어야 하며 명령줄 매개 변수로 전달되며(이 매개 변수는 Simple Command Line Property Source를 사용하여 Spring 컨텍스트에 추가됨), 이 인수가 항상 존재하는 것은 아닙니다.
디폴트값을 설정하기 위해 다음 두 가지를 시도했습니다.
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
그러나 어느 경우든 실제 값이 있는 경우에도 콜론이 주입된 후 기본 인수는 스프링이 주입해야 하는 값을 덮어씁니다.
@Value가 필요없음을 지정하는 올바른 방법은 무엇입니까?
감사해요.
@Value가 필요없음을 지정하는 올바른 방법은 무엇입니까?
'필수가 아니다'라는 것은null그러면...
디폴트값을 지정할 수 있음을 올바르게 인식하고 있습니다.:성격.당신의 예는@Value("${myValue:DEFAULT}").
디폴트값으로서 플레인 문자열에 한정되지 않습니다.SPEL 식 및 간단한 SPEL 식을 사용하여null다음과 같습니다.
@Value("${myValue:#{null}}")
Java 8을 사용하고 있는 경우는, 그 기능을 이용할 수 있습니다.java.util.Optional다음과 같이 변수를 선언하면 됩니다.
@Value("${myValue:#{null}}")
private Optional<String> value;
그런 다음 값이 보다 적절하게 정의되어 있는지 여부를 확인할 수 있습니다.
if (value.isPresent()) {
// do something cool
}
도움이 됐으면 좋겠다!
설정 속성을 옵션으로 할 경우 다음과 같은 빈 문자열을 전달합니다.
@Value("${app.optional.value:}")
다중 콘텍스트를 사용하고 있는 것 같습니다.property-placeholder/declarations?
이 경우 이는 2012년 이후 알려진 문제이지만 수정되지 않은 것은 분명 관심 부족과 해결 방법이 없기 때문입니다.자세한 내용은 https://github.com/spring-projects/spring-framework/issues/14623를 참조해 주세요.http://www.michelschudel.nl/wp/2017/01/25/beware-of-multiple-spring-propertyplaceholderconfigurers-and-default-values/에 의해 알기 쉽게 설명되어 있습니다.
언급URL : https://stackoverflow.com/questions/23348061/how-to-define-value-as-optional
'programing' 카테고리의 다른 글
| 방화벽 기반에서 모든 자식 내부에 특정 값이 있는 속성을 쿼리하는 방법 (0) | 2023.03.17 |
|---|---|
| TypeError: 정의되지 않은 'contextTypes' 속성을 읽을 수 없습니다. (0) | 2023.03.17 |
| IE가 파일을 포함하는 jQuery 멀티파트 형식의 데이터를 제출하는 동안 json 응답을 다운로드하려고 합니다. (0) | 2023.03.17 |
| 스프링 데이터: "삭제 기준"이 지원됩니까? (0) | 2023.03.17 |
| 오류: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443 (0) | 2023.03.17 |