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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值