AbstractAnnotationConfigDispatcherServletInitializer详解

    AbstractAnnotationConfigDispatcherServletInitializer 是 Spring Framework 提供的一个抽象类,用于简化基于 Java 配置的 Web 应用程序的部署。它是在 Spring 3.1 中引入的,目的是为了简化 Servlet 3.0+ 容器上的 Web 应用程序的配置。

    主要用途:

  • Servlet容器初始化:在 Servlet 3.0 及以上版本的容器中自动配置 Spring 上下文。

  • Spring MVC 配置:自动注册 DispatcherServlet 并设置相关配置。

  • Java 配置:使用 Java 配置而不是 XML 文件来定义 Bean 和配置。

使用方法:

    1. 继承 AbstractAnnotationConfigDispatcherServletInitializer : 创建一个子类,覆盖其中的一些方法以指定 Spring 配置类以及任何额外的初始化参数。
    2. 指定配置类: 在子类中通过 @Override 注解重写 getServletConfigClasses() 方法来指定包含 Spring Bean 定义的配置类。
    3. 设置上下文路径: 通过重写 getServletMappings() 方法来指定 DispatcherServlet 的映射路径。
    4. 自定义上下文参(可选): 通过重写 getServletFilters() 或 getServletRegistrations() 方法来添加过滤器或自定义 Servlet 注册行为。

示例代码:

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // 返回应用级别的配置类
        return new Class<?>[]{RootConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // 返回与 DispatcherServlet 相关的配置类
        return new Class<?>[]{WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        // 设置 DispatcherServlet 的 URL 映射
        return new String[]{"/"};
    }
}

在这个示例中:

  • getRootConfigClasses() 方法返回了 RootConfig 类,这通常包含了数据源、事务管理等非 Web 层的配置。

  • getServletConfigClasses() 方法返回了 WebConfig 类,这通常包含了视图解析器、控制器等 Web 层的配置。

  • getServletMappings() 方法设置了 DispatcherServlet 的 URL 映射,这里将其映射到了根路径 /

    通过这种方式,你可以很容易地在 Servlet 容器中启动一个带有 Spring MVC 功能的 Web 应用,而不需要传统的 web.xml 文件。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值