实例简述Spring AOP之对AspectJ语法的支持

本文详细探讨了Spring AOP如何支持AspectJ语法,通过实例解析了切面的定义、通知类型以及切入点表达式的使用,帮助读者掌握在Spring中应用AspectJ进行面向切面编程的关键技术。
摘要由CSDN通过智能技术生成

Spring的AOP可以通过对@AspectJ注解的支持和在XML中配置来实现,本文通过实例简述如何在Spring中使用AspectJ.
一:使用AspectJ注解:
1,启用对AspectJ的支持:
通过在Spring的配置中引入下列元素来启用Spring对AspectJ的支持:
<aop:aspectj-autoproxy />
或者(如果不是使用XSD的话)
<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
2,声明一个带有@Aspect注解的类,在这个类中声明那些方法需要被'关注'(利用@Pointcut),在那些时机点进行关注(利用@Before,@AfterReturning等等...),执行'切入'的方法
3,在Spring的配置文件中定义这个'切面'类:任意带有一个@Aspect切面(拥有@Aspect注解)的bean都将被Spring自动识别并用于配置在Spring AOP.
4,使用被Spring管理的bean,在执行被'关注'的方法时,'切入'的方法就会被执行.
一个完整的例子:
需要被'切入'的类:

public class Monkey {
    public void stealPeaches(String name) {
        System.out.println(" Monkey " + name + " is stealling peaches...");
    }
   
    public void stealCorns(String name) {
        System.out.println(" Monkey " + name + " is stealling corns...");
    }
}
'切面'类:
@Aspect
public class Guardian {
    @Pointcut("execution(* com.test.spring.aspectj.Monkey.stealPeaches(..))")
    public void guardOrchard() {
    }

    @Before(value = "guardOrchard()")
    public void guardOrchardBefore() {
        System.out.println("Guardian spotted a monkey is approaching the orchard...");
    }

    @AfterReturning("guardOrchard() && args(name,..)")
    public void guardOrchardAfter(String name) {
        System.out.println("Guardian caught a monkey stealling peaches whoes name is " + name + "...");
    }
    @Around("guar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值