`
234390216
  • 浏览: 10193363 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:460806
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1771803
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1395429
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:393886
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:678220
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:529293
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1178733
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:461882
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150144
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:66849
社区版块
存档分类
最新评论
阅读更多

通过程序定义DispatcherServlet

以往我们在使用SpringMVC的时候都需要在web.xml中定义一个DispatcherServlet。基于Servlet3编程时我们也可以通过程序来注册DispatcherServlet,Servlet3的ServletContainerInitializer允许我们在容器启动的时候通过程序注册一些Servlet对象,Spring提供了一个实现,叫SpringServletContainerInitializer,同时对外开放了一个WebApplicationInitializer接口,如果需要通过程序来注册DispatcherServlet,我们只需自定义一个WebApplicationInitializer实现类,在其onStartup方法体中注册即可。容器启动的时候会自动调用其onStartup方法。

在下面的代码中我们自定义了一个WebApplicationInitializer实现类,并通过程序注册了DispatcherServlet。Spring也提供了WebApplicationInitializer的一个抽象实现,AbstractDispatcherServletInitializer,通过继承该抽象类,我们可以通过重写其中的方法的方式处理我们关心的某部分内容,比如可以通过重写getServletMappings方法指定servlet的映射路径;通过重写getServletFilters方法指定DispatcherServlet需要应用的Filter;也可以通过重写customizeRegistration自定义一些配置。

public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        XmlWebApplicationContext appContext = new XmlWebApplicationContext();
        appContext.setConfigLocation("/WEB-INF/applicationContext-mvc.xml");
        ServletRegistration.Dynamic registration = servletContext.addServlet("dispatcher", new
        DispatcherServlet(appContext));
        registration.setLoadOnStartup(1);
        registration.setAsyncSupported(true);
        registration.addMapping("/springmvc/*");
    }

}

也可以选择直接继承AbstractDispatcherServletInitializer,然后实现其中的抽象方法。

(注:本文是基于Spring4.1.0所写)

 

0
0
分享到:
评论

相关推荐

    全面掌握Spring MVC:从基础到高级的实践指南

    Spring MVC是Spring框架的一个模块,专注于构建Web应用程序。作为架构师和Java开发者,深入理解Spring MVC的原理和实践应用...例如,通过使用@Controller和@RequestMapping注解,开发者可以轻松定义控制器和请求映射。

    瑞吉外卖项目的完整源代码

    通过Spring Boot框架的支持,可以轻松构建和管理RESTful API,定义资源的URL路径和相应的请求方法,使得前后端之间的交互更加简单和可靠。 前端技术:瑞吉外卖项目的前端界面通常使用HTML、CSS和JavaScript等技术...

    springExperiments

    @Configuration :将类标记为应用程序上下文的bean定义的源 @EnableAutoConfiguration :告诉Spring引导开始基于类路径和其他bean添加bean。 例如,如果spring-webmvc在类路径上,则将激活关键的web-application-...

    Spring面试题

    在对由三部分组成的 Spring 系列 的第 1 部分进行总结时,我使用了一个示例,演示了如何通过 Spring IOC 容器注入应用程序的依赖关系(而不是将它们构建进来)。 我用开启在线信用帐户的用例作为起点。对于该实现,...

    kappak:它不会改变世界,但可以帮助我更好地了解springMVC。 谢谢

    运行模式通过client服务内部转发MockReq达到DispatcherServlet的目的.client通过RestTemplate调用本地服务, 在client端的配置文件中设置端口号, methodType = 1, 并且client端需独立运行.通过url反射调用目标方法, ...

    Spring in Action(第2版)中文版

    13.1.2配置dispatcherservlet 13.1.3springmvc概述 13.2将请求映射到控制器 13.2.1使用simpleurlhandlermapping 13.2.2使用controllerclassnamehandlermapping 13.2.3使用元数据映射控制器 13.2.4使用多映射...

    Spring in Action(第二版 中文高清版).part2

    13.1.2 配置DispatcherServlet 13.1.3 Spring MVC概述 13.2 将请求映射到控制器 13.2.1 使用SimpleUrlHandler Mapping 13.2.2 使用ControllerClassName HandlerMapping 13.2.3 使用元数据映射控制器 13.2.4 ...

    Spring in Action(第二版 中文高清版).part1

    13.1.2 配置DispatcherServlet 13.1.3 Spring MVC概述 13.2 将请求映射到控制器 13.2.1 使用SimpleUrlHandler Mapping 13.2.2 使用ControllerClassName HandlerMapping 13.2.3 使用元数据映射控制器 13.2.4 ...

    spring in action英文版

     8.1.2 配置DispatcherServlet  8.1.3 Spring MVC概述  8.2 将请求映射到控制器  8.2.1 将URL映射到Bean名称  8.2.2 使用SimpleUrlHandlerMapping  8.2.3 使用元数据映射控制器  8.2.4 使用多...

    springmybatis

    程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, ...

    Spring中文帮助文档

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    Spring API

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    Spring.3.x企业应用开发实战(完整版).part2

    17.4.3 通过扩展基类所定义DAO类 17.4.4 DAO Bean的装配 17.4.5 使用Hibernate二级缓存 17.5 对持久层进行测试 17.5.1 配置Unitils测试环境 17.5.2 准备测试数据库及测试数据 17.5.3 编写DAO测试基类 17.5.4 编写...

    Spring3.x企业应用开发实战(完整版) part1

    17.4.3 通过扩展基类所定义DAO类 17.4.4 DAO Bean的装配 17.4.5 使用Hibernate二级缓存 17.5 对持久层进行测试 17.5.1 配置Unitils测试环境 17.5.2 准备测试数据库及测试数据 17.5.3 编写DAO测试基类 17.5.4 编写...

    springboot参考指南

    关闭Spring MVC DispatcherServlet vii. 65.7. 关闭默认的MVC配置 Spring Boot参考指南 7 viii. 65.8. 自定义ViewResolvers v. 66. 日志 i. 66.1. 配置Logback ii. 66.2. 配置Log4j i. 66.2.1. 使用YAML或JSON配置...

    JAVA核心知识点整理(有效)

    2.2.1. 程序计数器(线程私有) ................................................................................................................ 22 2.2.2. 虚拟机栈(线程私有) .................................

Global site tag (gtag.js) - Google Analytics