У меня была та же проблема при работе с Spring MVC и инициализации нескольких инициализаторов.Разделили их на разные классы и пометили их Spring @ Order (значение)
Сначала будет инициализировано.AbstractAnnotationConfigDispatcherServletInitializer
будет инициировать контекст приложения сервлета, а также контекст корневого приложения.
import org.springframework.core.annotation.Order;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@Order(1)
public class Init extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override protected Class<?>[] getRootConfigClasses() {
return new Class[]{Config.class};
}
@Override protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override protected String[] getServletMappings() {
return new String[]{"/*"};
}
}
Это будет помечено @Order(2)
Это вторая инициализация для класса инициализации сеанса AbstractHttpSessionApplicationInitializer
обеспечит, чтосервлет будет использовать springSessionRepositoryFilter для каждого запроса, который отвечает за замену реализации HttpSession пользовательской реализацией при поддержке Redis подробнее .
import org.springframework.core.annotation.Order;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
@Order(2)
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 600)
public class SessionInit extends AbstractHttpSessionApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException
{
super.onStartup(servletContext);
}
}