服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

aop中的主要技术(二)


  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();

扫描关注微信公众号