27、Eternal框架v2-框架设计 前置分发器 2、设计思路

前置分发器 设计
前置分发器有3个作用:1、初始化系统;2、接受用户的请求,并进行分发;3、释放资源。这3个功能对应前置分发器的3个方法:1、init;2、doFilter;3、destroy。

1、初始化系统
初始化所有场景
初始化Ioc容器
初始化组件
初始化分发器具体实现

2、接受用户的请求,并进行分发
包装原始请求为RestRequest,同时将根环境放入RestRequest。
将环境放入本地线程中:RestHttp.create(request, httpResponse, servletContext);
如果为场景请求分发这个场景。
释放本次请求的产生的资源。

3、释放资源
释放分发器的具体实现。此实现被DispatcherFilter持有为单例模式。
释放servlet环境。

设计思路
DispatcherFilter初始化系统相关配置,如场景、视图等信息,并将它们放入根环境,然后将根环境放入分发器具体实现中,DispatcherFilter持有具体实现的单例。
分发请求时,在分发器具体实现中得到根环境,放入本次请求的RestRequest中,RestRequest包含本地请求的所有信息,如请求的场景、参数、动词等,然后将RestRequest放入本地线程中。
分发器具体实现根据根环境,创建本次请求的ApplicationContext环境,由ApplicationContext和其他组件完成交互。

你可能感兴趣的:(filter,设计思路,前置分发器,mvc控制器)