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

初识Webx 2

时间:2016-06-02 13:25:17      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

初识Webx 1: http://www.cnblogs.com/lddbupt/p/5547189.html

 

Webx Framework负责完成一系列基础性的任务. 比如系统初始化和响应请求.

系统初始化: 初始化Spring容器, 初始化日志系统.

响应请求: 增强request/response/session的功能, 提供pipeline流程处理机制, 异常处理, 开发模式.

Webx Framework提供了一个可剪裁、可扩展的处理WEB请求基本框架。它所提供的基本功能事实上是每个WEB框架都需要用到的。Webx Framework为进一步实现WEB框架提供了坚实的基础。

Webx的初始化

初始化级联的Spring容器

Webx Framework将负责创建一组级联的Spring容器结构。Webx所创建的Spring容器完全兼容于Spring MVC所创建的容器,可被所有使用Spring框架作为基础的WEB框架所使用。

技术分享

WebxContextLoaderListener是由Spring中的ContextLoaderListener派生的, 可代替后者用来初始化Spring容器.

Webx Framework将会自动搜索/WEB-INF目录下的XML配置文件,并创建下面这种级联的spring容器。

技术分享

注意: 如果不希望把你的应用分成多个小应用模块,那么,你还是需要配置至少一个小应用模块(子容器)。

初始化日志系统

Webx Framework使用SLF4J作为它的日志框架。因此Webx Framework理论上支持所有日志系统。然而目前为止,它只包含了log4j和logback这两种日志系统的初始化模块.

技术分享

LogConfiguratorListener会根据你当前应用所依赖的日志系统(通常配置在maven project中),来自动选择合适的日志配置文件。

  • 假设你的应用依赖了logback的jar包,那么listener就会查找/WEB-INF/logback.xml,并用它来初始化logback;
  • 如果你的应用依赖了log4j的jar包,那么listener也会很聪明地查找/WEB-INF/log4j.xml配置文件。
  • 假如以上配置文件不存在,listener会使用默认的配置 —— 把日志打印在控制台上
  • Listener支持对配置文件中的placeholders进行替换。
  • Listener支持同时初始化多种日志系统

Webx响应请求

当Webx Framework接收到一个来自WEB的请求后, 它会封装成更易使用的RequestContext对象(增强request, response, session的功能), 然后, 路由到子应用, 调用相应的子应用的pipeline, 进一步处理.

如果上述过程出现异常,则会触发Webx Framework处理异常.

增强request, response, session的功能

Request contexts服务.  利用HttpServletRequestWrapperHttpServletResponseWrapper对request和response对象进行包装,以实现新的功能。

Request contexts所有的功能都是可配置、可扩展的 —— 它是基于SpringExt的扩展机制

Request contexts所增加的功能对于所有的基于标准Servlet API的应用都是透明的 —— 这些应用根本不需要知道这些扩展的存在。例如,假如你在request contexts服务中配置了增强的session框架,那么所有通过标准的Servlet API取得session的应用,都将获得新功能.

技术分享

技术分享

[注入特殊对象]

技术分享

在这个例子中,LoginAction类可以是一个singleton。一般来说,你不能把request scope的对象,注入到singleton scope的对象中但你可以把HttpServletRequestHttpServletResponseHttpSession对象注入到singleton对象中。为什么呢?原来,Request contexts服务对这几个常用对象进行了特殊处理,将它们转化成了singleton对象。

如果没有这个功能,那么我们就不得不将上例中的LoginAction配置成request scope。这增加了系统的复杂性,也成倍地降低了性能。而将LoginAction设置成singleton,只需要在系统启动时初始化一次,以后就可以快速引用它。

 

 

 

参考文献

http://www.openwebx.org/

初识Webx 2

标签:

原文地址:http://www.cnblogs.com/lddbupt/p/5552351.html

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