【发布时间】:2019-01-03 23:48:04
【问题描述】:
在从事一个 Spring 项目时,我意识到我有三个类都在有效地实现 WebApplicationInitializer
public class SpringSessionInitializer extends AbstractHttpSessionApplicationInitializer
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer
public class AnnotationWebAppInitializer implements WebApplicationInitializer
看了这三种用法后,我发现我没有办法将它们结合起来,所以我有几个问题。
- 它们的执行顺序是否一致?
- 如果有,有办法订购吗?
- 如果没有,任何方法的主体都将 作为 addInterceptors 或 ResourceResolvers,最终清除 其他人的设置。
【问题讨论】:
-
我自己找不到课程
SpringSessionInitializer;如果是你自己的内部类,我们没办法不看就告诉你。通常,控制排序的方法是使用@Ordered注解。请注意,添加项(如拦截器)本质上是非破坏性的。 -
这些类都是我的类,但它们要么实现 WebApplicationInitializer 要么扩展一些可以做的事情。根据文档,这意味着当 tomcat 初始化容器时会启动。
-
1.通常是的,2. 添加
@Order,3. 不,它们是互补的(除非明确重新定义相同的 servlet 等)。
标签: java spring spring-mvc servlets spring-security