servletcontextlistener :监听javax.servlet.servlet context (应用程序)。
应用程序监听器: spring对应用程序上下文的监听。
http会话监听器:对javax.servlet.http.http会话(session )的监听。
HttpSessionAttributeListener界面:监听session属性。
基于ServletContextListener的监听程序在基于应用程序监听器的监听程序之前运行。 因为前者必须在Tomcat/Jetty容器启动后运行,后者必须在spring APP初始化完成后运行。
srvletcontextlistenerservletcontextattributelistenerservletrequestlistener中的每个web APP应用程序都包含一个上下文,由web APP应用程序中的每个APP应用程序共享
publicinterfaceservletcontextlistenerextendseventlistener { publicvoidcontextinitialized (servletcontexteventsce ) }; publicvoidcontextdestroyed (servletcontexteventsce; }对于常规spring APP应用程序,还必须配置web.xml
对于监听器监听器- classcom.my.listener.test监听器/listener-class/listenerspringboot APP应用程序,@WebListener注释
将@ServletComponentScan注释添加到spring boot web APP应用程序启动代码中。
添加@ServletComponentScan注释后,servlet、Filter和监听器可以直接通过@WebServlet、@WebFilter和@WebListener注释自动注册,其他代码
如果@Autowired已注入bean,则可能为null。
@ weblistenerpublicclassmyservletcontextlistenerimplementsservletcontextlistener { publicvoidcontextinitialized (服务内容初始化) 现在可以使用webapplicationcontextutils.getrequiredwebapplicationcontext (SCE.getservletcontext ).getautowirext ) ) } publicvoidcontextdestroyed (servletcontexteventsce; @Autowiredprivate MyDao dao; }应用程序监听器在常规Spring环境中,基于应用程序监听器的监听程序的onApplicationEvent方法可能会执行多次。
在web项目(spring mvc )中,有两个容器:根应用程序上下文和自己的项目名称- servlet上下文作为根应用程序上下文的子容器
@ overridepublicvoidonapplicationevent (上下文参考事件) if ) event.getapplicationcontext (.get parent ) ) )