标签:@aspectj
鲁春利的工作笔记,好记性不如烂笔头
要进行AOP编程,首先我们要在spring的配置文件中引入aop命名空间:
引入后AOP命名空间并启动对@AspectJ注解的支持(spring-context-aop-annotation.xml):
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 启动对@AspectJ注解的支持 --> <aop:aspectj-autoproxy /> </beans>
Spring默认不支持@AspectJ风格的切面声明,通过<aop:aspectj-autoproxy/>声明Spring就能够自动扫描被@Aspect标注的切面了。
Spring自带了名为AnnotationAwareAspectJAutoProxyCreator的自动代理类,可以在Spring的配置文件中把AnnotationAwareAspectJAutoProxyCreator注册为一个Bean,但是为了简化配置,Spring在aop命名空间提供了该元素配置,用来自动创建AnnotationAwareAspectJAutoProxyCreator类。
AnnotationAwareAspectJAutoProxyCreator会自动代理一些Bean,这些Bean的方法需要与使用@Aspect注解的Bean中所定义的切点想匹配,这些切点是通过@Pointcut注解定义的。
AOP相关的注解位于org.aspectj.lang.annotation包下。
声明切面
@AspectJ风格的声明切面非常简单,使用@Aspect注解进行声明:然后将该切面在配置文件中声明为Bean后,Spring就能自动识别并进行AOP方面的配置(就是一个普通的bean)。
@Aspect public class LogAdapter { // ...... }
声明切入点
@Pointcut修饰一个方法用来标识该方法为切入点方法,方法必须返回void类型。
@Pointcut(value="切入点表达式", argNames="参数名列表") public void poincutMethod () { // ...... }
说明:切入点@Pointcut的声明不是必须的,可以在通知声明时声明切入点表达式(但如果存在多种通知则每个通知上都需要声明切入点表达式),而声明切入点后可以在使用通知的地方引用切入点定义。
本文出自 “闷葫芦的世界” 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1810564
标签:@aspectj
原文地址:http://luchunli.blog.51cto.com/2368057/1810564