aku*_*ma8 5 spring internationalization spring-boot application.properties
我有这个多模块项目:
Parent Pom
|
|----Main module (@SpringBootApplcation and application.properties)
|
|----Module I
|
|----Module II
|
|----Module III
Run Code Online (Sandbox Code Playgroud)
主模块依赖于其他模块,并且包含messages.properties和messages_fr.propertiesunderresources/messages/以及application.properties我定义MessageResourcebean 的位置spring.messages.basename=messages/messages。现在我想将messages.properties文件放入每个模块中。例如,对于模块 I,src/main/resources/messages/messages.properties模块 II 的内容相同。我的问题是,如何在MessageResource定义的 bean中添加模块的消息application.properties?我尝试了几个这样的声明:
spring.messages.basename=messages/messages,classpath:/com/company/moduleI/resources/messages/messages或者spring.messages.basename=messages/messages,classpath:moduleI/resources/messages/messages但没有一个有效。有办法实现这一点吗?
我终于找到了一个更好的解决方案,使用ResourceBundleMessageSource#addBasenames(...)添加所有模块的消息。
编辑
在每个模块中,我重命名了消息文件,例如对于模块 I,我有resources/messages/moduleI-messages.properties, resources/messages/moduleI-messages_en.properties。然后我在该模块中定义了一个配置类来添加消息源文件。
@Configuration
public class ModuleConfig {
private final ResourceBundleMessageSource messageSource;
@PostConstruct
public void addMessageBaseName() {
messageSource.addBasenames( "messages/module1-messages" );
}
}
Run Code Online (Sandbox Code Playgroud)
我确信可能有更好的方法,但我没有找到。
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |