SimpleFramework全面介绍第一部分(历史回顾、组成、安装与部署)

upsimple 发布于 2010/11/04 10:42
阅读 377
收藏 1

SimpleFramework全面介绍第一部分(历史回顾、组成、安装与部署)

SimpleFramework是采用Java语言开发,基于Servlet Filter后处理模式技术实现的Web应用级框架。
先谈一谈SimpleFramework的发展历史:
SimpleFramework 最早来自工作流Web客户端的“自定义表单”功能。当时考虑过采用标签库或 xform来实现,不过为了避免表单设计器产生的数据和jsp混在一起,决定了抽出一个XML文件来描述表单的元信息,同时为了更好的兼容标签库和 Struts等基于Servlet的技术,最终使用了Filter直接拦截被响应到浏览器的HTML流,这个版本就是SimpleV1了:)
SimpleV1 仅处理了表单,在使用过程中逐步发现其实完全有能力处理整个请求页面,如果同样用分离的XML去描述相关的业务,会极大减轻开发工作,更 重要的是,可以定义一套基于XML描述的组件规范,让业务上有一个代码级的积累,于是有了SimpleV2。也许有人问,SimpleV2会不会成为一个 和Struts一样的东西呢,这完全是没有必要的担心:

  1. Struts针对请求,而SimpleV2针对组件
  2. SimpleV2体现了一种描述(声明式)的编程方式
  3. SimpleV2不仅简化客户端,同样也大大简化服务器端
  4. 业务组件库避免大部分重复开发
  5. 用户的代码量大幅减少,这也导致系统复杂度降低,性能更高、更安全(前提是SimpleV2足够稳定和安全,哈哈)
  6. SimpleV2兼容性更强,因为解析的基础是HTML,而不是标签库


但SimpleV2存在几个致命缺陷,使我们不得不放弃:

  1. 组件的思想有了,但规范定义的不开放,说白点,我们自己能开发组件,用户却不能,这一点就是致命的
  2. 复杂组件做的过于复杂,一些本应该靠组件之间的组合形成的组件,我们自己在开发的时候,反而抛弃了
  3. 随着技术的发展,特别是浏览器的提速,在Web开发领域很多原本服务器要做的事,现已经移植到了客户端
  4. 只 提供javascript一种渲染方式,可能大家不明白,举个例子,比如生成一个表格,SimpleV2首先会生成一段获取表格的ajax代码给浏览 器,浏览器根据js再一次发送获取表格的真正请求,有些情况感觉是很先进的,异步装载嘛,但实际上也并非用户要的,而且作为框架技术,不应该仅此一种方式
  5. 数据访问层一直不满意,主要想达到以下几个目标:
  1. 为组件访问DB、Lucense、No-SQL提供一致的编程接口
  2. bean的获取提供更灵活的架构,比如:通过配置决定是基于数据库的绑定方式、还是基于缓存的,或者分布式缓存的
  3. 更高效,适合超大数据


这些就是SimpleV3诞生的原因了:)
贴个发展路线图:

Simple的组成
Simple的组成,可以分为两个部分,SimpleMVC和业务组件库。不过在打成jar包的时候,并没有明显分开,主要因为我们目前提供的业务组件库也相当通用。
SimpleMVC是Simple的Web技术核心,是基于Servlet Filter后处理模式技术实现的MVC框架。使用起来很简单,只需要在web.xml文件中定义一个Filter即可:
   
       actionFilter
       net.simpleframework.web.page.PageFilter
      
            initializerHandle
            net.simpleframework.example.MyPageInitializer
      
   
   
       actionFilter
       *.jsp
   
SimpleMVC同时提供了核心组件和基本UI组件,PageFilter会自动注册这两类组件,也就是说,只要定义了Filter,就可以使用这两类组件。
业务组件库是在SimpleMVC的基础上发展而来的,目前提供的有系统组件、机构组件、内容组件、流程组件(未完)等几个大块。
下面解释一下业务组件的注册。
SimpleMVC提供了注册接口来完成注册工作,您必须在系统的初始化代码中调用该注册接口,形式如下:
ComponentRegistryFactory.getInstance().regist(new XXXXXRegistry(servletContext));
只有注册到SimpleMVC的业务组件才能被使用,PageFilter在初始化的时候注册了核心组件和基本UI组件,所以这两类组件可以直接使用。
为了更好的减轻用户开发Web应用程序的负担,Simple提供了一个Web应用程序的入口类net.simpleframework.web.SimpleWebApplication
在web.xml文件中定义如下:
   
       startup
       net.simpleframework.web.SimpleWebApplication
       0
   
SimpleWebApplication的使命如下:

  1. 初始化系统资源,比如数据库,IO等
  2. 装载应用组件并初始化


需要说明的是SimpleWebApplication需要spring的支持,利用spring bean的方式来管理整个Web应用的配置参数,其路径为WEB-INF/project.xml。
很多朋友下载程序后,运行不了,就是在web.xml启动了SimpleWebApplication类,但自己的机子又没有相应的环境,比如:数据库连接。


安装与部署
说一下运行环境。Simple目前运行在JDK6上,各位同学想运行在JDK5上,就自己下代码,自己编译,5版本以下就不要考虑了,因为用了很多5的语法。
Servlet引擎可选的范围比较多,Tomcat、Jetty、Risen、WebLogic等都可以,不过自己一直用Tomcat6。
现 在代码已上传至GoogleCodeSVN上,有两个目录,一个是Web根目录,一个是源文件目录,下载后自己建工程就可以,所需要的依赖库放在 WEB-INF/lib下,之所以这样,主要是考虑Eclipse的用户直接可以引入,操作步骤为:Properties->Java Build Path->Libraries->Add Library...->Web App Libraries。
Simple运行后,会自动产生一个名为$resource的目录,这里面就是组件自动部署后的资源文件,包括jsp、jar、js、css等,这个目录用户是不需要维护的,你可以删除它们,下一次还会自动部署上去。

 

 

下载地址: http://code.google.com/p/simpleframework/downloads/list
更多信息 请浏览:http://simpleframework.net/

加载中
返回顶部
顶部