-
(1) "../第五章 构建Spring Web应用程序/Spring MVC起步.md"中写过,配置DispatcherServlet只需要扩展 AnnotationConfigDispatcherServletInitializer这个类,并重写3个方法
(2) 重载 customizeRegistration(Dynamic registration)方法,可以对DispatcherServlet进行额外的配置。
示例
public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { ... @Override protected void customizeRegistration(Dynamic registration) { registration.setMultipartConfig(new MultipartConfigElement("/", 2097152, 4194304, 0)); } }
这个例子配置了 multipart的支持;在customizeRegistration()方法里面还可以setInitParameter设置初始化参数;setLoadOnStartup()设置启动优先级
-
在JavaConfig中添加其他的Servlet和Filter
实现 WebApplicationInitializer接口,即能实现自动添加其他 Servlet和Filter
示例
public class MyServletInitializer implements WebApplicationInitializer { private void registerServletOnStartup(ServletContext servletContext) { Dynamic tryServlet = servletContext.addServlet("try", TryServletWithJavaConfig.class); tryServlet.addMapping("/try/*"); } private void registerFilterOnStartup(ServletContext servletContext) { FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encodingFilter", EncodingFilter.class); encodingFilter.addMappingForUrlPatterns(null, false, "/*"); } public void onStartup(ServletContext servletContext) throws ServletException { registerServletOnStartup(servletContext); registerFilterOnStartup(servletContext); } }
具体的作用类似于在 web.xml中添加 <servlet>,<servlet-mapping>,<filter>等元素
-
在web.xml中添加各种元素
示例
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <listener> <listener-class>listener.ContextListener</listener-class> </listener> <servlet> <servlet-name>tryXml</servlet-name> <servlet-class>spittr.servlet.TryServletWithWebXml</servlet-class> </servlet> <servlet-mapping> <servlet-name>tryXml</servlet-name> <url-pattern>/tryXml</url-pattern> </servlet-mapping> </web-app>
和不使用Spring时的web.xml内容相同
web.xml添加DispatcherServlet:P205
-
总结
(1) 在有条件时,尽可能使用扩展AnnotationConfigDispatcherServletInitializer的方法来配置DispatcherServlet
(2) 添加额外的servlet和filter尽量使用实现WebApplicationInitializer接口的方法
(3) 实在需要写web.xml,写法和普通的JavaEE相同
(4) 如果一定要在web.xml中配置DispatcherServlet,写法见P205
chapter07_SpringMVC的高级技术_1_SpringMVC配置的替代方案
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. ServletContext接口介绍 ServletContext接口定义了servlet运行时Web应用的...
- 本章聊一聊ServletContext 3.0规范中定义的注解以及在web应用中使用的框架和库的可插拔性的提升。 ...