У меня есть класс утилиты, который я хочу инициализировать, когда приложение запускается в Spring MVC. Поэтому я реализую InitializingBean
. Теперь мне нужно создать объект для него и сохранить его в области приложения, чтобы я мог получить доступ к одному и тому же экземпляру повсюду. Но я не могу это понять.Установить объект в контексте приложения весной mvc
Вот моя попытка:
public class DashboardInitializer implements InitializingBean, ApplicationContextAware {
private ApplicationContext mApplication;
@Override
public void afterPropertiesSet() throws Exception {
initializeConfigurationUtil();
ConfigurationUtil util = ConfigurationUtil.getInstance();
/* Save the util to application scope */
}
@Override
public void setApplicationContext(ApplicationContext pApplication) throws BeansException {
this.mApplication = pApplication;
}
}
Является ли такой подход правильным или есть лучший способ сделать это?
Я проверил '' '' @ PostConstruct''''. Это вызывается для каждого контроллера после создания объекта контроллера. Однако моя логика не специфична ни для какого контроллера, а для конкретного приложения. Мой ConfigurationUtil используется через контроллеры, поэтому я должен инициализировать его сразу после настройки приложения. Поэтому '' '' afterPropertiesSet() '' '' кажется идеальным выбором. Но я не могу получить, как сохранить свой экземпляр в контексте приложения, чтобы я использовал один и тот же экземпляр везде. Я думал об использовании '' '' ServletContextAware''''. Это правильный выбор для моей цели? – divinedragon
postconstuct не является спецификацией для контроллера – NimChimpsky