Чтобы программно обновить кэш пакета ресурсов, я использую Spring ReloadableResourceBundleMessageSource. У меня возникли проблемы с внедрением его в мой bean-компонент, где я хочу вызвать метод clearCache().
Мне пришлось прибегнуть к следующему:
private ReloadableResourceBundleMessageSource messageSource;
@Autowired
public void setMessageSource(MessageSource messageSource) {
this.messageSource = (ReloadableResourceBundleMessageSource((DelegatingMessageSource)messageSource).getParentMessageSource();
}
Это работает, но должен быть лучший способ. Ресурс сообщения определяется следующим образом:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames" >
<list>
<value>WEB-INF/content/Content</value>
</list>
</property>
</bean>
Я не понимаю, почему Spring вводит источник сообщения типа DelegatingMessageSource.