Spring 4 官方文档学习(②)Web MVC 框架之编码式Servlet容器初始化
来源:互联网 发布:java log4j xml配置 编辑:程序博客网 时间:2024/05/24 16:14
在Servlet 3.0+ 环境中,你可以编码式配置Servlet容器,用来代替或者结合 web.xml文件。下面是注册DispatcherServlet:
- import org.springframework.web.WebApplicationInitializer;
- public class MyWebApplicationInitializer implements WebApplicationInitializer {
- @Override
- public void onStartup(ServletContext container) {
- XmlWebApplicationContext appContext = new XmlWebApplicationContext();
- appContext.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");
- ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(appContext));
- registration.setLoadOnStartup(1);
- registration.addMapping("/");
- }
- }
WebApplicationInitializer 是由Spring MVC提供的一个接口,可以让你的实现被探测到,并被自动用于初始化任何Servlet 3 容器。 它的一个抽象基类实现是 AbstractDispatcherServletInitializer,可以更容易的注册DispatcherServlet -- 只需要重写相应的方法、指定servlet的映射、指定DispatcherServlet配置的位置即可。
在基于Java的Spring配置中推荐这样做:
- public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return null;
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class[] { MyWebConfig.class };
- }
- @Override
- protected String[] getServletMappings() {
- return new String[] { "/" };
- }
- }
如果使用基于XML的Spring配置,应该直接继承 AbstractDispatcherServletInitializer(注意,基于Java的配置是继承的AbstractAnnotationConfigDispatcherServletInitializer):
- public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {
- @Override
- protected WebApplicationContext createRootApplicationContext() {
- return null;
- }
- @Override
- protected WebApplicationContext createServletApplicationContext() {
- XmlWebApplicationContext cxt = new XmlWebApplicationContext();
- cxt.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");
- return cxt;
- }
- @Override
- protected String[] getServletMappings() {
- return new String[] { "/" };
- }
- }
AbstractDispatcherServletInitializer 还提供了一种便捷的方式来添加Filter实例,并让它们自动被映射到DispatcherServlet(就是添加到DispatcherServlet映射的链路上):
- public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {
- // ...
- @Override
- protected Filter[] getServletFilters() {
- return new Filter[] { new HiddenHttpMethodFilter(), new CharacterEncodingFilter() };
- }
- }
注意,添加的每个filter都有一个默认的name -- 基于其类型,且会被自动映射到DispatcherServlet。
AbstractDispatcherServletInitializer 的isAsyncSupported protected method,可以用来启用DispatcherServlet和所有映射到它的filters的异步支持。默认,已启用,true。
最后,如果你需要更进一步的定制DispatcherServlet,你可以重写 createDispatcherServlet method。
官方文档地址:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-container-config
- 顶
- 0
- 踩
- Spring 4 官方文档学习(②)Web MVC 框架之编码式Servlet容器初始化
- Spring 4 官方文档学习(⑥)Web MVC 框架之配置Spring MVC
- Spring 4 官方文档学习(①)Web MVC 框架之异常处理
- Spring 4 官方文档学习(⑦)Web MVC 框架之HTTP caching support
- 《Spring 5 官方文档》18. Web MVC 框架
- Spring Web MVC框架(七) 基于代码的容器初始化
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(4)
- Spring官方文档翻译——15.1 介绍Spring Web MVC框架
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(1)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(2)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(3)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(5)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(6)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(7)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(8)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(9)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(10)
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(11)
- adb.exe 已停止工作 解决
- 通过Linux Diff命令判断两个源代码是否相同
- Oracle中的 UPDATE FROM 解决方法
- 蓝桥杯 BASIC-4 基础练习 数列特征
- yii2 activeform怎么设置只读及session调用
- Spring 4 官方文档学习(②)Web MVC 框架之编码式Servlet容器初始化
- JS的十大经典算法排序
- Android Usb的研究
- 2017.06.02.最佳健康革^-*命(THE OPTIMAL HEALTH REVOLUTION).杜克 约翰逊博士
- [YTU]_2865( 结构体--日期计算)
- LeetCode 121. Best Time to Buy and Sell Stock
- jmeter功能元件
- Android 动态加载Jni方法
- 商品展示界面