smw*_*dia 7 spring spring-mvc servlet-filters
有了WebApplicationInitializer,我可以轻松地ServletContext在onStartup()方法中添加一个过滤器.
如何添加过滤器WebMvcConfigurerAdapter?我必须使用XML吗?
为了帮助其他人更轻松地理解Spring Web配置,我绘制了下面的插图.
现在您只需要首先了解rationalSpring Web配置的背后.然后选择要继承的配置类以及从下面覆盖的方法.
查找它比记住这么多东西要痛苦得多.
关于Spring Web Initialization的一篇很好的文章:
http://www.kubrynski.com/2014/01/understanding-spring-web-initialization.html
根据Tunaki我的回复,我查了一下AbstractDispatcherServletInitializer.过滤器注册发生在以下代码中:
即使我覆盖绿色getServletFilters()方法,我仍然无法访问Dyanmic结果registerServletFilter().那么如何配置过滤器addMappingForUrlPatterns()呢?
我似乎have to覆盖了整个registerDispatcherServlet()方法.
Tun*_*aki 12
WebMvcConfigurer是一个接口,用于为通过启用的Spring MVC定制基于Java的配置@EnableWebMvc.WebMvcConfigurerAdapter只是一个为此接口提供默认空方法的适配器.
它没有配置DispatcherServlet,这是使用的过滤器.因此,您无法使用WebMvcConfigurer配置servlet过滤器.
要轻松配置过滤器,您可以继承AbstractDispatcherServletInitializer并覆盖getServletFilters():
public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {
@Override
protected Filter[] getServletFilters() {
return new Filter[] { new CharacterEncodingFilter() };
}
}
Run Code Online (Sandbox Code Playgroud)
如果要进一步配置过滤器,则必须覆盖onStartup:
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addFilter("name", CharacterEncodingFilter.class)
.addMappingForUrlPatterns(null, false, "/*");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16640 次 |
| 最近记录: |