You can define a global MessageSource for all of these message files. This approach is practical using the setBasenames method:
@Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasenames("classpath:/messages/business/message", "classpath:/messages/validation/message", "classpath:/messages/view/message"); return messageSource; }
This approach makes sense if your message keys are unique in all files, for example. The business-12 key only exits business related message sources. Otherwise, it is better to define one MessageSource for each context and enter them according to your context:
@Bean public MessageSource businessMessageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:/messages/business/message"); return messageSource; } @Bean public MessageSource validationMessageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:/messages/validation/message"); return messageSource; } @Bean public MessageSource viewMessageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); messageSource.setBasename("classpath:/messages/view/message"); return messageSource; }
source share