`
youzifei
  • 浏览: 65884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

spring aop aspectj 初探

阅读更多
今天记录一下学习aspectj的一点代码

在做aspectj的代码需要引入的jar
aspectj/
  aspectjlib.jar
  aspectrt.jar
  aspectjtools.jar
  aspectweaver.jar

cglib/
  cglib-2.2.2.jar
  asm.jar

spring-aspectj/
  spring-aspects.jar


配置文件 aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xsi:schemaLocation="   
         http://www.springframework.org/schema/beans   
         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
         http://www.springframework.org/schema/aop   
         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

  <aop:aspectj-autoproxy />
 
  <bean id="aspect" class="com.jimmy.aop.AspectHello" />

  <bean id="hello" class="com.jimmy.aop.Hello" />
</beans>

代码
AspectHello.java
package com.jimmy.aop;

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


@Aspect
public class AspectHello {

    @After("execution(* com.jimmy.aop.Hello.say(..))&& args(words)")
    public void aa(String words) {
        System.out.println(words+" kkkk");
    }
    @Before("execution(* com.jimmy.aop.Hello.say(..)) && args(words, a)")
    public void aa(String words, int a) {
        System.out.println(a+" "+words+" kkkk");
    }
}

Hello.java
package com.jimmy.aop;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Hello {
   
    public void say(String words){
        System.out.println("hello "+words);
    }
    public void say(String words, int a){
        System.out.println(a + " hello "+words);
    }
    public static void main(String[] args){
        ApplicationContext context=
            new ClassPathXmlApplicationContext(new String[]{"aop.xml"});
        Hello hello=(Hello)context.getBean("hello");
        hello.say("jimmy");
        hello.say("jimmy", 1);
    }
}

运行结果:
hello jimmy
jimmy kkkk
1 jimmy kkkk
1 hello jimmy


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics