gpt4 book ai didi

java - 使用 pom.xml 加载属性文件和在 applicationContext.xml 中创建占位符的区别

转载 作者:行者123 更新时间:2023-12-01 13:58:11 25 4
gpt4 key购买 nike

我有一个根据环境加载的属性文件。我在 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 加载此文件。

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

最佳答案

两者之间有很大区别。主要是,当您在 Maven 中使用过滤器进行属性替换时,占位符会在文件中物理替换为所需的值。因此,您部署的工件可以说已经“烘焙”了配置。但是,使用 Spring 的属性占位符可以让您在运行时加载这些属性。这允许您部署工件并将配置延迟到运行时。这实际上取决于您的业务案例,但我个人的偏好是尽可能避免 Maven 过滤,而是依赖运行时配置,只是因为我喜欢从 Maven 构建生成单个工件,并且如果您根据以下条件更改属性,例如,您所针对的环境,您必须为每个环境生成不同的工件。适用于所有环境的单个工件,以及每个环境(如开发、质量保证和生产)可能不同的运行时加载配置,可以实现更干净的部署。它还允许您在访问受限的服务器上配置潜在的敏感属性,例如数据库连接的密码,以便有限数量的人了解此类敏感信息。

关于java - 使用 pom.xml 加载属性文件和在 applicationContext.xml 中创建占位符的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com