WebX启动和执行源码分析

本文介绍WebX框架的启动配置过程,包括监听器、环境初始化、组件加载器及WebX组件管理等内容。WebX基于Servlet,通过监听器实现容器初始化,使用WebxComponentsLoader进行环境加载,并管理自定义服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.前言

WebX是基于Servlet的Web开发框架,因此理解Webx的前置条件是弄懂Servlet和Web请求响应原理,这部分不再赘述,本文主要说明WebX启动配置和的执行过程。

1.入口

WebX应用的起点就是这个listener
com.alibaba.citrus.webx.context.WebxContextLoaderListener

监听器的就是实现了一些接口,这些接口在容器初始化和销毁时会被调用

1.1 启动监听器WebxContextLoaderListener

这是一个通过继承自ContextLoaderListener<- ContextLoader,并实现了ServletContextListener<- EventListener的WebX环境加载监听器
代码1-1
679115-20170212150545213-427537263.png

1.2 环境初始化contextInitialized()

其方法contextInitialized在容器初始化时会被调用,创建环境加载器初始化Web应用
代码1-2
679115-20170212150600463-493296924.png

createContextLoader返回的是一个ContextLoader类的实例。
方法里new出来一个WebxComponentsLoader的实例作为返回值,因此,这个返回值实际上是WebxComponentsLoader类的实例。返回的实例实际上是一个WebxComponentsLoader类的匿名子类的实例,且这个子类覆盖了getDefaultContextClass方法。
所以代码1-1中的init..方法实际是WebxComponentsLoader的

1.3 组件加载器WebxComponentsLoader

而WebxComponentsLoader继承自WebApplicationContext,后者和BeanFactory、ApplicationContext是理解Spring框架的关键。
WebApplicationContext<-ApplicationContext<-BeanFactory是三者的继承关系
BeanFactory就是用来管理springBean生命周期的,WebApplicationContext扩展了web容器相关的内容,而WebApplicationContext实际上只是读取配置文件,真正的初始化方法,在
ContextLoader中

1.4 WebX组件管理

用WebxComponentsContextLoader取代SpringMVC的ContextLoader进行环境加载
新建一个WebxComponentsContext作为根容器,这是SpringMVC默认的XmlWebApplicationContext的派生类;另外,这个根容器默认读取webx.xml作为配置项
除了webx.xml,每个匹配webx-.xml的配置文件,都会对应上述WebxComponentsContext根容器的一个子容器
在webx.xml和webx-
.xml中定义的beans将按照Spring容器的方式管理,而Webx自定义的服务,例如pipeline、form等,将使用Webx自定义的解析器解析为对应的bean实例,安装到Webx框架中,以备未来使用
其中自动扫描是这样工作的:扫描WEB-INF目录下所有匹配webx-.xml的文件,其中所代替的字符串为组件名。例如,WEB-INF下有一个名为webx-home.xml的文件,那么它代表一个名为home的组件。

2.请求Webx

2.1 URL过滤器

配置了filter之后,通过doFilter方法,对exclude标签中的url不处理
679115-20170212150603901-2119984421.png

679115-20170212150624229-1475006674.png

2.2 请求信任

对于请求是否信任,需要验证。首先判断流程请求是否结束和内部请求,然后验证信任请求,requestContext
679115-20170212150853619-613357967.png

转载于:https://www.cnblogs.com/chrisXin/p/6390984.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值