스프링 빈에 다음이 있습니다.
@Value("${myValue}")
private String value;
값이 올바르게 주입되었습니다. 그러나 변수는 선택 사항이어야하며 명령 줄 매개 변수로 전달되며 ( SimpleCommandLinePropertySource를 사용하여 Spring 컨텍스트에 추가됨 )이 인수가 항상 존재하는 것은 아닙니다.
기본값을 제공하기 위해 다음 두 가지를 모두 시도했습니다.
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
그러나 각각의 경우, 실제 값이 있더라도 콜론 뒤의 기본 인자가 주입됩니다. 이것은 Spring이 주입해야하는 것을 덮어 씁니다.
@Value 가 필요하지 않음 을 지정하는 올바른 방법은 무엇입니까 ?
감사
매우 이상합니다. 기본값은 기본값으로 만 작동해야합니다 (즉, 속성이 정의되지 않은 경우). "실제 값이있는 경우에도 기본값이 주입됩니다"(예 : 오래된 컴파일 된 클래스가없는 경우) 문을 다시 확인할 수 있습니까?
—
Pavel Horal 2014
@Value("${some.prop:}")
나를 위해 작동합니다. 이것이 해당 변수에 대한 유일한 주석입니다.
애플리케이션 구성을 게시 할 수 있습니까?
—
Vladimir Vagaytsev
@Autowired (필수 = false)?
—
Andrew Scott Evans