<!-- 配置Listener -->

<listener>     <listener-class>org.springframework.web.util.WebAppRootListener</listener-class> </listener> <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>   <!--配置Filter,这边配置了一个Filter,但是匹配了多个url-pattern--> <!-- 以url-partern方式配置的filter中,如果有多个与当前请求匹配,则按web.xml中filter-mapping出现的顺序来运行--> <filter>       <filter-name>filter1</filter-name>       <filter-class>com.csx.MyFilter</filter-class>   </filter>   <filter-mapping>     <filter-name>filter1</filter-name>       <url-pattern>/url/a/*</url-pattern>   </filter-mapping>   <filter-mapping>       <filter-name>filter1</filter-name>       <url-pattern>/url/b/*</url-pattern>   </filter-mapping>  <!--配置Servlet--> <servlet>     <servlet-name>springmvc</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <init-param>         <param-name>contextConfigLocation</param-name>         <param-value>classpath:springmvc.spring.xml</param-value>     </init-param>     <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>     <servlet-name>springmvc</servlet-name>     <!-- 这边不建议写成/* -->     <url-pattern>/</url-pattern> </servlet-mapping>

PS:在容器启动的时候,上面三个组件启动的顺序是Listener --> Filter --> Servlet,这边安利一个记忆的方法:把启动顺序记忆成“理(Listener)发(Filter)师(Servlet)”即可。

在web.xml中配置这三个组件比较简单,但是使用Spring-Boot开发时使用的是嵌入式容器,并没有web.xml文件让我们进行配置。那么在Spring-Boot中到底要怎么配置ListenerFilterServlet等组件呢?

本篇博客以Filter为列,介绍下在Spring-Boot中怎么配置ListenerFilterServlet等组件。

方式一:将Filter声明为bean#

这边我们先来自定义一个Filter,这个Filter的作用是统计一个接口的调用时间。