我使用嵌入 spring-cloud-config ( spring.cloud.config.server.bootstrap=true
),所以我配置为将 git repo 下载到我的可运行 jar 附近的本地文件夹 -build/config/backend
spring:
cloud:
config:
server:
bootstrap: true
git:
searchPaths: backend
basedir: build/config
在我将此类配置用于消息资源之后(我messages directory
在文件中的资源messages*.properties
)
spring.messages.basename=file:${spring.cloud.config.server.git.basedir}/${spring.cloud.config.server.git.searchPaths}/messages/messages
和bean配置
@Value("${spring.messages.basename}")
private String basename;
@Value("${spring.messages.cache-duration}")
private Duration cacheDuration;
@Value("${spring.messages.use-code-as-default-message}")
private Boolean useCodeAsDefaultMessage;
@Bean
@Primary
@RefreshScope
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames(StringUtils.commaDelimitedListToStringArray(StringUtils.trimAllWhitespace(basename)));
messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
messageSource.setCacheMillis(cacheDuration.toMillis());
messageSource.setUseCodeAsDefaultMessage(useCodeAsDefaultMessage);
return messageSource;
}
从 git repo 更新配置后,它还会更新应用程序中的消息资源