Struts2——初始化(init方法)源码研究

其实很久之前就有读一下三大框架源码的想法了,可是一直没什么时间也静不下心来,由于公司兼容性任务的赶工也快告一段落,下午到家又没有什么事情,于是乎从官网将开源代码struts2,和hibernate的源码下了下,花了近4个小时的时间研究了下struts2源码,目前只是个菜,写的不对的地方肯定有的。
看源代码之前了解下struts2逻辑结构。
图片 
(1)——说到浏览struts2源码必然要从struts2的入口类StrutsPrepareAndExecuteFilter开始,在web.xml中配置filter,filter-class是StrutsPrepareAndExecuteFilter类或其子类。
    如下:
图片 
  
(2)——
StrutsPrepareAndExecuteFilter 实现filter接口,其实就是个过滤器,所以必不可少的三个方法init,doFilter,destory。看单词就可以知道分别做了初始化,请求处理和销毁。 
        图片

 (2-1)
先看一下init方法
    图片
(2-2)
init中比较重要的是Dispatcher dispatcher = init.initDispatcher(config)创建并初始化Dispatcher 图片
图片
dispatcher.init( );
图片 
(2-3)Dispatcher的init方法加载了一系列配置文件,挑选了几个不一样的来看看,大多数基本一致

/*1*/ init_DefaultProperties
/*2*/ init_TraditionalXmlConfigurations   
图片

[5]     /*4*/init_CustomConfigurationProviders 
图片

[6] /*5*/ init_FilterInitParameters  
图片

再回到StrutsPrepareAndExecuteFilter的init方法,init.initStaticContentLoader(config, dispatcher)通过filterConfig和
dispatcher初始化静态上下文,实例化请求处理阶段需要用到的实例化对象prepare和execute,Struts2的初始化主线一样只 
在启动服务是加载一次,如果数据库中做了修改需要重启服务才能看到变化。struts2初始化工作到这里也就结束了。 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值