gpt4 book ai didi

java - 使用 Spring 从属性文件加载嵌套占位符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:13 24 4
gpt4 key购买 nike

是否可以从属性文件中加载嵌套的占位符?我正在尝试动态加载 URL。

例如,如果我的属性文件包含

my.url=http://localhost:8888/service/{nestedProperty}/

有没有办法在运行时加载 {nestedProperty} 的值?类似于 ResourceBundle 的行为。如果是这样,我将如何有效地实例化字符串?到目前为止我在想

<bean id="myURLString" class="java.lang.String" scope="prototype" lazy-init="true">
<property name="URL" value="${my.url}" />
</bean>

...但我不确定要嵌套哪些属性。如果可能的话,我想获得一个使用注释的 bean,尽管我目前有一些类似的东西

ctx.getBean("myURLString", String.class, new Object[] { nestedProperty} );

我在这里查看了 PropertyPlaceholderConfigurer 和其他几个属性文件问题,但我似乎无法弄清楚这是否可能。

我还应该注意,我想从我的代码中动态加载这个嵌套属性,或者至少从那里操纵它们(可能通过@PostConstruct?)

最佳答案

是的,这是可能的:

my.url=http://localhost:8888/service/${nestedProperty}
nestedProperty=foo/bar/baz

在您的示例中的大括号前添加美元符号即可!

要实际使用完全解析的属性,请执行以下操作:

@Value("${my.url}")
private String url;

在 Spring bean 中。

关于java - 使用 Spring 从属性文件加载嵌套占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160607/

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