Spring4.x官方参考文档中文版——第21章 Web MVC框架(30)
来源:互联网 发布:php中tr什么意思 编辑:程序博客网 时间:2024/04/29 23:55
21.15 基于代码的Servlet容器初始化
在Servlet3.0+的环境下,你可以选择使用编程,同时结合web.xml来配置Servlet。下方是注册一个DispatcherServlet的示例:
import org.springframework.web.WebApplicationInitializer; public classMyWebApplicationInitializer implementsWebApplicationInitializer { @Override public voidonStartup(ServletContext container) { XmlWebApplicationContext appContext = newXmlWebApplicationContext(); appContext.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml"); ServletRegistration.Dynamic registration = container.addServlet("dispatcher", newDispatcherServlet(appContext)); registration.setLoadOnStartup(1); registration.addMapping("/"); } }
WebApplicationInitializer是Spring MVC提供的接口,用来确保你的实现是被检测到的,并且自动地在任意Servlet 3容器中初始化。WebApplicationInitializer的抽象基类的实现名叫AbstractDispatcherServletInitializer,使注册DispatcherSerlvet更简单,只需覆写其方法到servlet的映射和其配置的地址,如下所示:
public classMyWebAppInitializer extendsAbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[]getRootConfigClasses() { return null; } @Override protected Class<?>[]getServletConfigClasses() { return new Class[] {MyWebConfig.class }; } @Override protected String[]getServletMappings() { return new String[] { "/" }; } }
上方的例子展示了基于java 的Spring配置的应用。如果使用基于XML的Spring配置,直接继承AbstractDispatcherServletInitializer:
public classMyWebAppInitializer extendsAbstractDispatcherServletInitializer { @Override protected WebApplicationContextcreateRootApplicationContext() { return null; } @Override protectedWebApplicationContext createServletApplicationContext() { XmlWebApplicationContext cxt = newXmlWebApplicationContext(); cxt.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml"); return cxt; } @Override protected String[]getServletMappings() { return new String[] { "/" }; } }
AbstractDispatcherServletInitializer同时也提供了一种很方便的方法来添加过滤器实例,并把他们自动映射到对应DispatcherServlet上:
public classMyWebAppInitializer extendsAbstractDispatcherServletInitializer { // ... @Override protected Filter[]getServletFilters() { return new Filter[] { newHiddenHttpMethodFilter(), new CharacterEncodingFilter()}; } }
每一个被自动映射到DispatcherServlet上的过滤器的默认名,是基于其构造的类型的。
AbstractDispatcherServletInitializer中的受保护的方法isAsyncSupported,提供了在DispatcherServlet和所有映射到此Servlet的过滤器的异步支持。此方法默认为true。
最后,如果你需要更加个性化定制DispatcherServlet,你可以覆写createDispatcherServlet方法来实现。
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(30)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(21)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(16)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(17)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(18)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(19)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(20)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(22)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(23)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(24)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(25)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(27)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(28)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(29)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(31)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(32)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(33)
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(34)
- mybatis的xml配置中使用${}可能发生SQL注入,应使用#{}
- 杭电2027 统计元音
- Eclipse下Python插件(pydev)的安装
- 【算法】子数组和的问题总结
- Android-如何开发一个功能强大的ImagePicker
- Spring4.x官方参考文档中文版——第21章 Web MVC框架(30)
- 用户空间和内核空间、进程上下文和中断上下文
- 模拟器的错误缓存,会造成编译失败
- MySQL5.7 JSON实现简介
- Linux基础知识总结
- ZJNU 1712 树状数组
- 模仿艺龙手风琴效果
- HDU1098 Ignatius's puzzle(数学归纳法求解)(数论)
- delphi 对文件的基本打开关并读写操作 Rewrite、Append、Reset