zoukankan      html  css  js  c++  java
  • 【Spring框架】 ☞ WebApplicationInitializer源码分析及应用

    1、背景

      在约定大于配置的大环境下,xml配置文件越来越多的被零配置所取代。还有大部分将原xml中的配置转为在java类中定义。

      而WebApplicationInitializer就可以看做是web.xml的替代者,在启动Web项目时会加载该实现类,实现类中可定义对 servlet、filter、listener的操作。

    2、源码分析

      先来看下WebApplicationInitializer接口定义,可以看到只有一个接口,参数ServletContext解释说要用来初始化的;

      再看类上注解,提示可以参考SpringServletContainerInitializer。

      

      转看SpringServletContainerInitializer,先看类定义;

      首先该类实现了ServletContainerInitialize接口,并且在注释中明确说明在容器启动时加载该实现类。

           

      

      再来看重写的方法 onStartup(Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)

      webAppInitializerClasses,解释为所有WebApplicationInitializer接口的实现类,也就是说在容器启动时,webAppInitializerClasses的实现类类型会作为参数传入;

      下面的代码就很容易读懂了,如果不是接口啥的,将实现类实例化放到linkedList,然后循环调用实现类中重写的方法,以此达到代替xml的作用。

      

    3、应用

      分析完源码,说下实际项目中的应用。

      没啥说的,写了 servlet、filter 、listener的操作。

       

  • 相关阅读:
    业务领域建模Domain Modeling
    用例建模Use Case Modeling
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    结合工程实践选题调研分析同类软件产品
    如何提高程序员的键盘使用效率?
    第一次博客作业
    python_同时迭代多个对象
    python_判断奇偶数
    印象笔记markdown使用笔记
    【转】A*算法解决八数码问题
  • 原文地址:https://www.cnblogs.com/liuxs13/p/9284830.html
Copyright © 2011-2022 走看看