2013-07-05 44 views
1

要讀取一個春天的個人資料我用:使用彈簧的配置文件讀取現有財產

<beans profile="LOC"> 

我有這個屬性設置爲JVM屬性:

-Dspring.profiles.active=LOC 

我想用現有的屬性,而不是已配置:

-Dmyproperty=LOC 

我可以使用彈簧配置文件來使用現有屬性(myproperty)而不是spring.profiles.active

回答

1

看看source code of spring-core.jar AbstractEnvironment.java類。該系統屬性的名稱在這裏硬編碼:

/** 
    * Name of property to set to specify active profiles: {@value}. Value may be comma 
    * delimited. 
    * <p>Note that certain shell environments such as Bash disallow the use of the period 
    * character in variable names. Assuming that Spring's {@link SystemEnvironmentPropertySource} 
    * is in use, this property may be specified as an environment variable as 
    * {@code SPRING_PROFILES_ACTIVE}. 
    * @see ConfigurableEnvironment#setActiveProfiles 
    */ 
    public static final String ACTIVE_PROFILES_PROPERTY_NAME = "spring.profiles.active"; 

所以,是的,你可以破解它,並將其更改爲您的屬性名稱,或使其配置並重新編譯自己的版本(兒童請不要在家裏嘗試這個)。