gpt4 book ai didi

多模块项目中的Spring Boot i18n

转载 作者:行者123 更新时间:2023-12-04 12:42:03 79 4
gpt4 key购买 nike

我有这个多模块项目:

Parent Pom
|
|----Main module (@SpringBootApplcation and application.properties)
|
|----Module I
|
|----Module II
|
|----Module III

主模块依赖于其他模块,包含 messages.propertiesmessages_fr.propertiesresources/messages/还有 application.properties我定义的地方 MessageResource bean spring.messages.basename=messages/messages .
现在我想把 messages.properties每个模块中的文件。例如,对于模块 I,在 src/main/resources/messages/messages.properties 下模块 II 也是如此。
我的问题是,如何在 MessageResource 中添加模块的消息在 application.properties 中定义的 bean ?
我尝试了几个这样的声明:
spring.messages.basename=messages/messages,classpath:/com/company/moduleI/resources/messages/messagesspring.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" );
}
}

我相信可能有更好的方法,但我没有找到。

关于多模块项目中的Spring Boot i18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932444/

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