首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

用引语和pojo支撑起来的轻量级REST框架-T2

2012-06-21 
用注解和pojo支撑起来的轻量级REST框架--T2 用注解和pojo支撑起来的轻量级REST框架--T2Written by Tony@to

用注解和pojo支撑起来的轻量级REST框架--T2

 

用注解和pojo支撑起来的轻量级REST框架--T2

Written by Tony@tokyo

 

1.    前言

T2是以java5注解为支撑的轻量级Web框架。

T2不是简单的form提交,而对Ajax请求,RIA客户端等多种多样的前台技术的支持。

T2的目标:

2  无论什么类型的客户端都可以访问的Web服务器端框架

2  提供尽量简约,轻量级,易于维护和可扩展的架构

2  支持无状态,Rest风格的技术架构

2  提供plugin接口,可轻易扩展业务层架构

 

T2架构草图

用引语和pojo支撑起来的轻量级REST框架-T2

 

  T2的homepage: http://code.google.com/p/t-2/

1.    T2的sample code

T2的运行需要的JRE和Web容器

JRE:1.6以上

Web容器:实现了Servlet2.5和JSP2.0的JavaEE标准

 

T2运行时必要的jar文件

T2.jar

Commons.jar                   Apache的共通类库

slf4j-api.jar                     logging用类库

 

T2必要的设定

Web.xml中的设定


 

http请求由T2Filter接受,这里是T2框架的入口
  [t2.rootpackage]指定了所有后台页面程序的根目录,Web容器启动以后,到这个目录下面,将所有@Page注解的Java程序实例化。
  T2框架本身有自带的IOC管理器—SimpleContainerAdapter。
  当然也可以通过以下配置,将instances的管理交由专业框架。


 

接受http请求的后台类


 

以上,@Page用来声明这个后台类对外公开的URL。@Default声明默认的http请求的处理函数。
假设,Web工程的contentroot是/sample的话,上面的后台类能够用以下url访问
http://localhost:8080/sample/helloworld
 
T2框架可执行的SampleCode可以由以下取得
http://code.google.com/p/t-2/wiki/Samples

 

3.    T2的运行原理

用引语和pojo支撑起来的轻量级REST框架-T2

T2的MVC
     T2的核心在于,一个url对应一个Page类。
     Page类和View分离,达到可以自由更换View层技术。
     Page类中,http request的接受,http response的组装,Token的获得,Session的获得,业务层service的对象的组装都可以由注解来完成。
     比如,拿官方的sample举例


 

整个类最高层有两个注解,@RequestScope和@Page
@RequestScope声明本页面所有的变量只能存续在一次请求中
Index方法上的@Default声明了它是初期化函数
HttpServletRequest的变量是由框架组装实例化。
 
Login方法上的@Ajax,@POST,@ActionParam。分别声明了该方法支持Ajax请求,接受post方法请求,用来检查本方法和form的名字是否统一
 
前台JSP中提交的form如下


 

Form中定义的
t:url('/login')是用到了T2自定义的标签,简单说来就是将请求发给了Login.java的login函数。
 
T2的扩展
     作为一个高扩展的框架,T2提供了注解自定义,函数拦截,入口参数封装等等扩展接口。
Navigation
Navigation是用来forward,redirect画面的接口。可以自定义扩展,比如在画面跳转之前,将数据封装成json等等。
ContainerAdapter
用来连接DI容器的适配器,可以自定义到任意到现有的DI框架。
Plugin
XXXPlugin这种class可以用来拦截http请求,封装参数对象等等。具体说起来就是在T2Filter将请求转发给XXXPage之前就加以处理
AnnotationResolverCreator
可以用来生成和解释自定义的标签
FormResolver
用来自定义form参数解释器。
 
#以上#

 

热点排行