开发学院WEB开发Jsp AOP中的主要技术(二) 阅读

AOP中的主要技术(二)

 2008-01-05 09:56:05 来源:WEB开发网   
核心提示:session Pool Design 1. 利用apache common-pool实现一个Session Pool(非常简单)2. 如何避免代码中的returnObject()? xxx()invoke> PoolProxy ---> PoolInterceptorSessionPool borrow

  session Pool Design
  
  1. 利用apache common-pool实现一个Session Pool(非常简单)
  2. 如何避免代码中的returnObject()?
  
      xxx()      invoke
      --------> PoolProxy ---> PoolInterceptor   SessionPool
                        borrowObject()
                       --------------->
                       <---------------
  
  
                            xxx()    Session (be borr
  owed)
                       -------------------------------->
  
                        returnObject()
                       ---------------->
  
  --
  
  RMI design
  
   xxx()      invoke        Serialize call to remote
  -----> ClientProxy ---> RmiInterceptor ------------------->
  
       find ServerPRoxy, xxx()        xxx()
  RmiServer----------------> ServerProxy --->....-->ServerObject
  
  Method Cache design
  
  1.用HashMap做cache
  
   xxx()    invoke
  -----> Proxy ---> MCInterceptor
              1. get Attribute @timeout
              2. 用object[]作为key,看cache中的
              结果是否超时
  
              3. 假如超时   invoke
               ------------------> NextInterceptor...
              4. 假如不超,返回被cache的结果
  Draw activity UML diagram:
  
  1. 实现绘图模块
  xxx()   invoke
  ---> Proxy ---> ActivityIntercpetor
                 draw xxx()
              --------------->绘图模块
                invoke
              --------------------------->NextInterceptor...
  
  Persistence and descriptive transaction
  
  1. Persistence直接使用hibernate
  
  
  xxx    invoke
  ---->Proxy-->HibernateInterceptor
                  1. 取得@tx,应该为required,requiresnew
                  ,supports,notsupported中的一种
                  2. 判定当前的transaction状态
                  3. 决定本次调用是否在transaction当中
  Folder-Node关系的复用
  
  
  getFolder()  getFolder()     invoke       getFolder()
   --->UserProxy ------> NodeProxy -->SideEntityInterceptor--> Node
                              return Folder
                              <-----
                         根据Folder创建Group proxy
                   返回GroupProxy
                   <----
  
   in the code, like this:
  
  ...
  User user = userFactory.find("guty"); //user is actually a proxy
  Group group = (Group)((Node)user).getFolder();

Tags:AOP 主要 技术

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接