在进行春季项目时,我意识到我拥有三个有效实现WebApplicationInitializer的类
public class SpringSessionInitializer extends AbstractHttpSessionApplicationInitializer
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer
public class AnnotationWebAppInitializer implements WebApplicationInitializer
在查看了这三种用法之后,我发现我没有办法将它们结合起来,所以我有几个问题。
答案 0 :(得分:0)
因此,感谢M.Deinum的评论,它使我找到了答案。在@Order标签周围玩耍之后,您可以通过这种机制来控制它们的加载顺序。但是第二部分是,命令确实很重要。如果您阅读了AbstractHttpSessionApplicationInitializer的文档,它指出必须在其他注册过滤器的初始化程序之前对其进行排序。它还默认将其Order设置为100。必须首先使用它的原因是它使用过滤器从缓存数据库中检索会话。例如,如果您将AbstractSecurityWebApplicationInitializer设置为50,则切换服务器时将不再进行身份验证,因为spring安全过滤器将在从数据库获取会话的过滤器之前执行。
另一方面,我删除了一个Spring-Tomcat Web Application java.lang.IllegalStateException的错误,此错误已通过使我的主初始化程序AnnotationWebAppInitializer优先于其他程序解决。