使用弹簧轮廓读取现有属性

时间:2013-07-05 10:42:23

标签: spring spring-3

要阅读我使用的Spring配置文件:

<beans profile="LOC">

我将此属性设置为jvm属性:

-Dspring.profiles.active=LOC

我想使用已配置的现有属性:

-Dmyproperty=LOC

我可以使用弹簧配置文件来使用现有属性(myproperty)而不是spring.profiles.active吗?

1 个答案:

答案 0 :(得分: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";

所以是的,你可以破解它并将其更改为你的属性名称,或者使其可配置并重新编译你自己的版本(孩子们请不要在家里尝试这个)。