gpt4 book ai didi

java - 重新加载使用 setBundle 加载的属性文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:31 25 4
gpt4 key购买 nike

我希望对我在 Spring 中遇到的涉及属性文件的问题有所帮助。所以我的设置是这样的:

opto-mapping.properties – 它位于我的 src 文件夹中,包含我的优化资源的翻译,如下所示:

generic-min.css=4037119659.css

每次运行构建“优化”时都会更新此属性文件。然后我使用

<fmt:setBundle basename="opto-mapping" />

在我想要的 jsp 中导入我的属性文件。然后使用以下内容引用内容:

<fmt:message key='generic-min.css' />

除了属性文件需要重新启动 tomcat 才能重新加载外,这一切都很好。我不想每次更新资源时都必须开始关闭站点。我希望属性文件每隔一段时间自动重新加载。

我确实尝试更新我的 spring-context.xml 中的现有 bean 以重新加载此属性文件,就像我对翻译所做的那样,但这没有奏效 - 很可能是因为 opto-mapping.properties 文件位置 - 但你看到它需要在那个位置才能使用 fmt:setBundle 加载。

<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="cacheSeconds">
<value>1</value>
</property>
<property name="basenames">
<list>
<value>WEB-INF/translations/translations</value>
<value>WEB-INF/classes/opto-mapping</value>
</list>
</property>
</bean>

在此困难时期,我们将不胜感激任何帮助或指向正确方向的观点。

我希望所有这些都是有意义的,非常感谢!

G.

最佳答案

谢谢你们的回复。我现在已经开始工作了,我想我会分享财富。

因此,我将我的属性文件从 src 文件夹中移出并放入 WEB-INF/properties。

我更新了以下 bean 以加载属性文件:

<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="cacheSeconds">
<value>1</value>
</property>
<property name="basenames">
<list>
<value>WEB-INF/translations/translations</value>
<value>WEB-INF/properties/opto-mapping</value>
</list>
</property>
</bean>

现在,之前我使用 setBundle 像这样加载到我的属性文件中:

<fmt:setBundle basename="opto-mapping" />

但我发现显然我的属性文件不再被加载,因为我已经移动了它。但是由于我的 bean 设置,正在加载新的属性文件,但我的 setBundle 覆盖了它。

因此,解决方案是删除 setBundle,现在我的属性文件正在重新加载!

再次感谢!

关于java - 重新加载使用 setBundle 加载的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4136403/

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