명시 적으로 PropertySourcesPlaceholderConfigurer bean을 선언하지 않을 때 Spring이 속성 자리 표시자를 해결하는 방법에 대해 머리를 감싸려고합니다. 어노테이션을 통해 자바를 통해 스프링을 구성하는 기존 프로젝트의 소스를 살펴 봅니다. . . 스프링 컨텍스트 XML의 Spring Java 구성 및 속성 자리 표시 자 해결
:<context:component-scan base-package="com.myproject.config" />
및 & 구성
package com.myproject.config;
@Configuration
@ComponentScan(basePackages = {"com.myproject.app"})
@PropertySource("config/${app.env}.properties")
public class RootConfig {
}
그것은 모두 아주 매끄러운의 응용 프로그램의 나머지 부분을 부트 스트랩 자바 파일에
,하지만 난 수 없습니다의 삶에 대한 Spring이 환경 변수에 대한 $ {...} 속성 자리 표시 자의 구문을 평가하도록 알려줍니다. 스프링 문서에서 대답을 찾을 수 없었습니다. 스프링은 PropertySourcesPlaceholderConfigurer 클래스에 의존합니다. 이 클래스가 암시 적으로 호출되는시기/방법에 대한 단서는 없습니다. @Configuration 어노테이션을 통해서입니까, 아니면 스프링 부트 스트랩 프로세스의 다른 부분입니까?나는 이것이 가장 적절한 것이 아니라는 것을 알고 있지만 "봄맞이 마법"으로 아무것도 쓰지 않는 것을 좋아합니다. 이것에 대한 통찰력은 놀랄 것입니다!