musiclover

Spring @AspectJ

准备工作:需要  spring/lib/asm 下的3个包:asm.jar  asm-commons.jar asm-util.jar
spring/lib/aspectj  下的2个包 aspectjrt.jar  和aspectjweaver.jar
使用@AspectJ的小例子:

public interface Company {
  
public void descript();
  
public void ss();
}

public class stockCompany implements Company{

    
public void descript() {
        System.out.print(
"This is a stock market");
    }

    
//另外添加一个内嵌descript()的函数 调用后不会拦截里面的descript函数
    public void ss(){
        System.out.println(
"在另外一个函数调用的");
        descript();
    }

}

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;


@Aspect
public class PreDescriptAspect {
@Before(
"execution(* descript(..))")
 
public void beforeDescript(){
     System.out.print(
"Here Is My Company Description!");
 }

}

import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;

public class stockCompanyTest {
 
public static void main(String[] args){
 Company target
=new stockCompany();
 AspectJProxyFactory factory
=new AspectJProxyFactory();
 factory.setTarget(target);
 factory.addAspect(PreDescriptAspect.
class);
 Company proxy
=factory.getProxy();
 proxy.descript();
 proxy.ss();
 }

}



posted on 2009-09-14 20:01 Jxi 阅读(150) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

My Links

Blog Stats

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜