如何外部化战争外的春天的MessageSource包
-
21-09-2019 - |
题
我来外部的类路径外I18N支持(属性文件)的弹簧MessageSource实现束,以便更容易地修改属性。我该怎么办呢?
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="test-messages"/>
谢谢!
解决方案
我们已经建立了一个消息源的实现,查找信息在数据库中。你必须做的就是创建一个从春天的AbstractMessageSource继承MessageSource的实现(以获得所有功能,看到的Javadoc)。
您必须在最小的抽象方法“resolveCode(字符串,区域设置)”来实现的(但实现“resolveCodeWithoutArguments(字符串,区域设置)”会增加你的表演),委托给一个DAO指向的是简单的表,用定义如这样:
table translation (
translation_id number pk
code varchar(20)
locale varchar(5)
translation varchar(100)
)
码和语言环境形成独特的索引。
和大功告成。当然,你会添加一些缓存功能,并提供“语言环境恶化”的行为(即,如果没有找到“EN_US”,试图“恩”),无论是在dao-或MessageSource的级别。
此完美。
其他提示
检查此螺纹,了解关于此问题的信息,但我认为是不是一个很好的做法,tomcat的环境之外文件,你永远不知道它要部署应用程序。
但是,在你需要的情况下,你会发现一些相当不错的解决方案在那里。
不隶属于 StackOverflow