考虑以下代码:
<bean id="busmessageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:bundles/resource</value>
<value>classpath:bundles/override</value>
<value>file:/C:/mmt/override</value>
</list>
</property>
<property name="cacheSeconds" value="100" />
</bean>
Run Code Online (Sandbox Code Playgroud)
这里的属性来自bundles/resource和bundles/override我打电话时获取busmessageSource.getMessage("anykey", null, null)
但是当我尝试获取属性的值时失败了 C:/mmt/override
file:/C:/mmt/override覆盖值,classpath:bundles/override如果有任何相同的键存在.如何覆盖war文件夹之外的外部文件中的属性?小智 8
1.)我有以下三种方式:
C:/mmt/"文件夹添加到资源类路径中.<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<beans:property name="basename">
<beans:value>file:/path/to/messages</beans:value>
</beans:property>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)
注意1:您必须使用} file:前缀和ReloadableResourceBundleMessageSource类.
注2:千万不能把"的.properties"扩展名.
2.)在加载具有相同属性名称(键)的新属性文件时,可以覆盖以前的值.您必须确保最后获取要使用的属性文件.
你可以试试
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="defaultEncoding" value="UTF-8"/>
<property name="basenames">
<list>
<value>classpath:bundles/resource</value>
<value>classpath:bundles/override</value>
<value>file:C:/mmt/override</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
关于消息资源请注意:
| 归档时间: |
|
| 查看次数: |
10674 次 |
| 最近记录: |