码迷,mamicode.com
首页 > 移动开发 > 详细

【Spring框架】 ? WebApplicationInitializer源码分析及应用

时间:2018-07-09 17:52:21      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:color   说明   操作   cat   ring   大于   link   参数   文件   

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的操作。

   技术分享图片

【Spring框架】 ? WebApplicationInitializer源码分析及应用

标签:color   说明   操作   cat   ring   大于   link   参数   文件   

原文地址:https://www.cnblogs.com/liuxs13/p/9284830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!