private String message;
@Autowired
private CustomMessageSource messageSource;
@PostConstruct
public void postConstruct() {
message= messageSource.getMessage("warning-message");
logger.log(message);
}
@Component
public class CustomMessageSource extends ReloadableResourceBundleMessageSource {
@Autowired
private ApplicationContext ctx;
public CustomMessageSource() {
Locale.setDefault(Locale.ENGLISH);
}
public String getMessage(String key) {
return ctx.getMessage(key, new Object[] { }, getCurrentLocale());
}
}
в приведенном выше коде, когда выполняется @PostConstruct, я получаю сообщение об ошибке:
источник сообщений не инициализирован - вызовите функцию «обновить» перед доступом к сообщениям через контекст, завершившийся неудачей загрузки приложенияContext
предупреждение-сообщение является ключом в файле messages.properties.
При отладке я обнаружил, что хотя объект messageSource создан, но, вероятно, сообщения не были загружены, что вызывает эту ошибку.
Если вместо post-конструкции я использую его непосредственно в методах выполнения, он работает правильно.Кто-нибудь может пролить свет на это, если это возможно, или я делаю что-то не так?