gpt4 book ai didi

java - 可选的@PropertySource 位置

转载 作者:IT老高 更新时间:2023-10-28 13:58:00 25 4
gpt4 key购买 nike

我在 Web 应用程序中使用 Spring 3.2,我希望在包含默认值的类路径中有一个 .properties 文件。用户应该能够使用 JNDI 来定义存储另一个 .properties 的位置,该位置会覆盖默认值。

只要用户将 configLocation 设置为 JNDI 属性,以下操作即可。

@Configuration
@PropertySource({ "classpath:default.properties", "file:${java:comp/env/configLocation}/override.properties" })
public class AppConfig
{
}

但是,外部覆盖应该是可选的,JNDI 属性也应该是可选的。

当前我在缺少 JNDI 属性时遇到异常(java.io.FileNotFoundException: comp\env\configLocation\app.properties(系统找不到指定的路径)

如何定义仅在设置 JNDI 属性 (configLocation) 时使用的可选 .properties@PropertySource 甚至可以做到这一点,还是有其他解决方案?

最佳答案

从 Spring 4 开始,发布 SPR-8371已解决。因此,@PropertySource 注释具有一个名为 ignoreResourceNotFound 的新属性,该属性正是为此目的而添加的。此外,还有新的 @PropertySources允许实现如下的注释:

@PropertySources({
@PropertySource("classpath:default.properties"),
@PropertySource(value = "file:/path_to_file/optional_override.properties", ignoreResourceNotFound = true)
})

关于java - 可选的@PropertySource 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17401583/

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