반응형
@Value를 선택 사항으로 정의하는 방법
스프링 빈에 다음이 있습니다.
@Value("${myValue}")
private String value;
값이 올바르게 주입되었습니다. 그러나 변수는 선택 사항이어야하며 명령 줄 매개 변수로 전달되며 ( SimpleCommandLinePropertySource를 사용하여 Spring 컨텍스트에 추가됨 )이 인수가 항상 존재하는 것은 아닙니다.
기본값을 제공하기 위해 다음 두 가지를 모두 시도했습니다.
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
그러나 각각의 경우, 실제 값이 있더라도 콜론 뒤의 기본 인자가 주입됩니다. 이것은 Spring이 주입해야하는 것을 덮어 씁니다.
@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
}
도움이 되었기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/23348061/how-to-define-value-as-optional
반응형
'Programing' 카테고리의 다른 글
XPath : 속성이 있는지 확인하는 방법은 무엇입니까? (0) | 2020.08.28 |
---|---|
Eclipse에서 디버깅하는 동안 표시되지 않는 변수 (0) | 2020.08.28 |
Firebase Firestore 컬렉션 수 (0) | 2020.08.28 |
true .. 다음 false .. 다음 true .. 등을 반환하는 Javascript regex [duplicate] (0) | 2020.08.28 |
다중 사용자 Ajax 웹 애플리케이션을 동시에 안전하게 설계하는 방법 (0) | 2020.08.28 |