0

我有一个基于环境加载的属性文件。我在 applicationContext.xml 中创建了一个占位符

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:environment-${buildProfile}.properties</value>
        </list>
    </property>
</bean>

还有另一种方法可以通过 Maven 加载此文件。

你能建议我哪个是加载属性文件的更好方法吗?这有什么性能差异吗?

4

1 回答 1

1

两者有很大的不同。主要是在Maven中使用过滤器做属性替换时,占位符是物理替换的在文件中按所需的值。因此,可以说,您部署的工件具有“内置”的配置。然而,使用 Spring 的属性占位符,您可以在运行时加载这些属性。这允许您部署工件并将配置延迟到运行时。这实际上取决于您的业务案例,但我个人的偏好是尽可能避免 Maven 过滤,而是依赖运行时配置,这仅仅是因为我喜欢从 Maven 构建中生成单个工件,并且如果您更改基于,例如,您所针对的环境,您必须为每个环境生成不同的工件。适用于所有环境的单个工件,具有可能因每个环境(如 dev、qa 和生产)而不同的运行时加载配置,可以实现更清洁的部署。

于 2013-10-22T01:22:29.053 回答