From e76c389310bbe03efd9706fc2e36ab8bd5d9c12c Mon Sep 17 00:00:00 2001 From: Philipp Markiewka Date: Fri, 25 Jun 2021 16:25:23 +0200 Subject: [PATCH] Adds Bean to set the spring.messages.basenames The spring.messages.basename property in application.properties does not support external paths like `file:/some/path/messages` so we set the property with `ReloadableResourceBundleMessageSource` where the `file:` notation is supported Signed-off-by: pmarkiewka --- .../petclinic/PetClinicApplication.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java index 191253587..52d1bd36c 100644 --- a/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java +++ b/src/main/java/org/springframework/samples/petclinic/PetClinicApplication.java @@ -16,8 +16,12 @@ package org.springframework.samples.petclinic; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; /** * PetClinic Spring Boot Application. @@ -28,8 +32,22 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication(proxyBeanMethods = false) public class PetClinicApplication { + @Value("${spring.messages.basename}") + private String messagesBasename; + public static void main(String[] args) { SpringApplication.run(PetClinicApplication.class, args); } + // The spring.messages.basename property in application.properties does not + // support external paths like `file:/some/path/messages` so we set the + // property with `ReloadableResourceBundleMessageSource` where the `file:` + // notation is supported + @Bean + public MessageSource messageSource() + { + ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); + messageSource.setBasenames( messagesBasename ); + return messageSource; + } }