Jos*_*osh 6 java internationalization spring-boot kubernetes
我们有一个部署到 Kubernetes 的 Spring Boot 应用程序。我们正在向此应用程序添加 i18n 功能,并希望将 messages.properties 文件放置在应用程序 jar/war 之外。我已经能够在春季启动中做到这一点。当我将其部署到 Kubernetes 上时,它将如何工作?我需要使用配置映射吗?以下是代码片段
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
//Path to the messages.properties files
messageSource.setBasenames("file:/messages/messages", "classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(60);
return messageSource;
}
}
Run Code Online (Sandbox Code Playgroud)
是的,您可以使用配置映射来做到这一点。它与访问外部 application.properties 文件非常相似。首先,您可以直接从文件创建 ConfigMap或创建代表该文件的 ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: treasurehunt-config
namespace: default
data:
application.properties: |
treasurehunt.max.attempts=5
Run Code Online (Sandbox Code Playgroud)
然后在 kubernetes 部署中为 ConfigMap创建一个卷,并将其挂载到用于外部配置的目录下的 Pod 中:
volumeMounts:
- name: application-config
mountPath: "/config"
readOnly: true
volumes:
- name: application-config
configMap:
name: treasurehunt-config
items:
- key: application.properties
path: application.properties
Run Code Online (Sandbox Code Playgroud)
这些片段来自从ConfigMap 为 application.properties 文件安装卷的示例,因此它们使用 Spring Boot默认外部属性文件路径/config. 您可以在挂载的 yaml 中进行设置,以便挂载文件以使用在 kubernetes 外部运行时已使用的相同相对路径。
| 归档时间: |
|
| 查看次数: |
4885 次 |
| 最近记录: |