一、声明式通知
1、@Before
2、@AfterReturning
a、要获得目标方法的返回值,必须使用returning属性,在@AfterReturning的参数上设置(参数名的绑定),表示向下面方法的哪个参数传入目标方法的返回值。(声明式通知)
b、例如:
@AfterReturning(value="execution(* doSome(..))", returning="rtnValue")
public void action(int rtnValue) {
System.out.println(rtnValue);
}
3、@AfterThrowing
a、绑订连接点时,必须使用throwing属性
b、例如:
@AfterThrowing(value="execution(* doSome(..))", throwing="ine")
public void actionIllageNameException(IllageNameException ine) {
System.out.println(ine.getMessage());
}
4、@After
a、相当于@AfterThrowing和@AfterReturning
5、@Around
a、使用ProceedingJoinPoint调用目标对象方法。
b、调用目标方法,应该有返回值
6、@DelareParents
a、@DeclareParents(value="aop3.SomeServiceImpl",defaultImpl=OtherServiceImpl.class),声明在新增加接口上。
b、属性value表示对哪个目标类引入。
c、属性defaultImpl表示新增加引入接口逻辑的实现。
@DeclareParents(value="hw.aop.test.SomeServiceImpl", defaultImpl=OtherServiceImpl.class)
private IOtherService service;
IOtherService为新增加方法接口
二、切面
1、切入点表达式:定义切面可以用到哪些目标对象的哪些方法。
2、定义方法,切入点:@Before("XXX"),定义在方法上。
3、在类名上面定义:@Aspect
@Aspect
public class LogAdvice {
@DeclareParents(value="hw.aop.test.SomeServiceImpl", defaultImpl=OtherServiceImpl.class)
private IOtherService service;
}
三、声明式切入点
1、格式:@Pointcut(切入点表达式)
2、execution:
a、一个函数,参数为定义的匹配规则,如:@Before("execution(* doSome(..))")
b、格式:execution(方法的修饰符? 方法的返回值? 方法名通配符(方法参数))
c、方法参数可以用..,表示任意参数格式数量,也可以指定参数,如int
d、方法名可以加上包名,也可以使用通配符。
c、此表达式不支持继承,即父类匹配,切面不织入到子类中。
3、within
四、配置自动代理
1、在配置文件里声明AnnotationAwareAspectJAutoProxyCreator进行自动代理。
2、也可以使用<aop:aspectj-autoproxy />标签自动代理。
<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
或
<aop:aspectj-autoproxy />
五、JoinPoint
1、在通知里如果要获得目标方法的名字时,我们可以将方法传入JoinPoint参数。
2、jp.getSignature().getMethodName()获得方法名。
@Before("execution(* doSome(..))")
public void action(JoinPoint jp) {
String mn = jp.getSignature().getMethodName();
System.out.println(mn);
}
分享到:
相关推荐
切面生成service-api接口源码 1.aspectj 切面获取注解信息 2.Java 反射获取属性信息 3.SpringContext 获取spring 容器beans 4.poi工具生成docx文档
主要对Spring AOP的相关概念和简单的静态代理、动态代理以及常见的几种AOP配置方式做总结学习。主要包括:1. AOP的常见概念 2. 静态代理 3. jdk动态代理 4. Aspectj and Aspectjweaver 5. **aop-config** 6. CGLIB ...
Spring4 In Action-4.2-@AspectJ-切面,Spring4 In Action-4.2-@AspectJ-切面。Spring4 In Action-4.2-@AspectJ-切面
其中包含Spring JAR文件以及切面处理的AspectJ JAR文件。
aspectj
spring aop 自定义切面示例 aspectj 需要相应的架包支持
面向切面,AspectJ,是一个AspectJ官方提供的用面向切面方法编写的星际战争小游戏,动作非常逼真!
一个基于@AspectJ的spring2.0 AOP应用实例,很小很简单,没有任何额外信息,最适合AOP入门学习。使用log4j打印信息。把项目直接import进myeclipse就可以使用啦......
主要介绍了分析java 中AspectJ切面执行两次的原因的相关资料,希望通过本能帮助到大家,需要的朋友可以参考下
这是进行spring-framework的AOP开发时需要的jar包,解压缩其中lib文件夹,lib文件夹中有4个重要的jar包:aspectjrt.jar,aspectjtools.jar,aspectjweaver.jar,org.aspectj.matcher.jar,解压缩后把这4个jar包导入...
aspectJ切面包 aspectj-1.6.10.jar包用于安装aspectj插件。 安装: 1、进入aspectj文件所在的路径,输入命令: java –jar aspectj-1.6.10.jar 出现安装界面后,选择JDK的安装路径。 2、安装完成后将bin路径添加...
spring aspectj aspectrt.jar
Spring4.3.7的AOP依赖包-AspectJ
Spring框架(6)AspectJ实现AOP共7页.pdf.zip
二、 利用动态代理实现面向切面编程 20 第八课:Spring AOP配置选项 21 一、 AOP配置annotation方式 21 (一) 搭建annotation开发环境 21 (二) aspectJ类库 22 (三) AOP的annotation实例 22 (四) AspectJ的专业术语 ...
学习Spring开发的AOP面向切面编程时所需要的jar包,包括com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
Spring AOP的AspectJ支持jar包; 包括: com.springsource.net.sf.cglib-2.2.0.jar com.srpingsource.org.aopalliance-1.0.0.jar com.srpingsource.org.aspectj.weaver-1.68.RELEASE.jar
Spring2.5开发 如果我们用到了AOP的话 一定需要aspectjrt.jar + aspectjweaver.jar 两个jar文件 这里面提供了 导入这两个就可以进行AOP开发了
Spring AOP之基于AspectJ注解总结与案例 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45394409
跟我学Spring3(6.5)AspectJ切入点语法详解Java开发Java经验技巧共10页.pdf.zip