В моем веб-приложении я создаю CustomWebApplicationInitializer, который простирается от AbstractAnnotationConfigDispatcherServletInitializer. Мне нужно добавить другой источник собственности для приложения. Я делаю это в методе onStartup, как показано ниже, устанавливая InitParameter в servletContext.Spring web Application Context
public class MvcWebApplicationInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
private static final String[] SERVLET_MAPPINGS = new String[] {"/"};
private static final String SESSION_COOKIE_PATH = "/";
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {AppConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return SERVLET_MAPPINGS;
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.setInitParameter("contextInitializerClasses", "com.test.myproject.MyTestPropertySourceInitializer");
}
}
MyTestPropertySourceInitializer реализует ApplicationContextInitializer и проверяет, является ли значение некоторого свойства устанавливается истина.
public void initialize(ConfigurableApplicationContext applicationContext) {
ConfigurableEnvironment env = applicationContext.getEnvironment();
Boolean testPropEnabled = (Boolean) env.getProperty("testProperty.enabled", Boolean.class);
Я установил это значение свойства в true. Но в логах значение false, и оно не обрабатывается, как ожидалось. Поэтому я думаю, что к моменту вызова метода initialize файл свойства не загружается в applicationContext. Пожалуйста, сообщите, как я могу это сделать. Заранее спасибо.
Извините за путаницу описания. Метод инициализации находится в другой общей библиотеке, которая используется многими другими проектами, поэтому мы не можем выполнять эту нагрузку. Я попробую принудительно загрузить в моем проекте, прежде чем вызывать метод servinetcontext setInitParameter и сообщить вам, если это работает. – NewQueries