posts - 138, comments - 150, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年10月15日

学习拥有连贯
在我刚认识 让 java 动态 这种动态编译动态加载的几天后
对我一向不懂的 AOP 特别是 AspectJ 开窍了 (哈哈 那感觉好啊^_^)
下面我写出我刚对AOP的一些小练

1。目的
DAO中大量的 session的开和闭 不紧使代码成倍加,还及容易出错
用 设计模式
hibernate 包装 下大家好象有点接受不了(@_@!)
AOP就进入我的视线 但总没个切入点

2。原理
其实 让 java 动态 就是那点东西 但IBM 包出个好用的框架 来 。

3。代码说明
//*******************Dao.java ****************************
package
 tt;
//为了简单 session 看成是 真的session 哈 ^_^
public class Dao {
    
public String session = "close" ; 
    
    
public void testDao(){
        System.out.println( 
"testDao in function : "+ session);
    }
    
    
static public void main(String[]args){
        Dao dao 
= new Dao() ;
        dao.testDao();
        System.out.println(
"main in function : " +  dao.session);
    }
}

//*****************List.aj ****************************
package tt;

public aspect List {
    //切点  范围声明  (Dao.testDao 归 readOnly切点管  )
    pointcut readOnly(Dao dao):execution(
* *Dao.testDao*(..))&&this(dao);

    //挂载
readOnly 开始方法
     before(Dao dao) :  readOnly(dao) {         
             openSession(dao);
      }
     //挂载 readOnly 结束方法
     after(Dao dao) returning()  :  readOnly(dao) {
          close(dao);
     }
    
    
// readOnly 方法 运行代码 (到这可以大胆的写 java 代码了 ) 。。。。
     private void openSession(Dao dao) {
         
if(dao.session.equals("close"))
             dao.session 
= "Session Open";
     }
     
private void close(Dao dao) {
         dao.session 
= "close" ;
     }
}

4。结果:
testDao in function : Session Open
main in function : close



4。后续
AspectJ 使 AOP 简单
可能还会统一标准
能为我们的java 框架灵活 更上一层 (期待)


posted @ 2007-10-15 16:57 G_G 阅读(751) | 评论 (0)编辑 收藏

下面 ( alt+shift+T ) 中都可以找到
1.改名 :  ( alt+shift+R )
2.类移动:( alt+shift+V )
3.方法上移父类,下移子类 (alt+shift+T) + U/D
4.方法接口化  (alt+shift+T) +T
5.部分代码提升为方法 alt+shift+M
6.局部变量提升为类变量 alt+shift+F

.............

***************************************************************

Ctrl+M:   工作区最大化/最小化  
  Alt+/:     智能提示  
  F3:           察看声明  
  Crtl+1:   修正错误  
   
  Shift+Alt+T:   重构  
  Shift+Alt+M:   提取函数  
  Shift+Alt+R:   重命名  
  Shift+Alt+C:   更改函数标记  
   
  Ctrl+Shitf+F:   格式化代码  

posted @ 2007-10-15 10:21 G_G 阅读(86) | 评论 (0)编辑 收藏