1、使用注解方式实现AOP操作

  第一步:创建对象

<!-- 创建对象 -->
<bean id="book" class="com.bjxb.aop.Book"></bean>
<bean id="myBook" class="com.bjxb.aop.MyBook"></bean>

  第二步:在 Spring 核心配置文件中,开启AOP操作

<!-- 开启aop操作 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

  第三步:在增强类上面使用注解完成AOP操作

@Aspect@Component
public class MyBook {// 在方法上面使用注解完成增强的配置@Before(value="execution(* com.bjxb.aop.Book.*(..))")public void before1() {System.out.println("before1........");}
}

  注意:

  我们一定要在切面类上加@Component注解,而且要开启包扫描到当前切面所在路径。

  因为@Aspect注解不是Spring的注解,该类并不能被识别。

@AspectJ提供的不同的通知类型

1、@Before 前置通知,相当于 BeforeAdvice

2、@AfterReturning 后置通知,相当于 AfterReturningAdvice

3、@Around 环绕通知,相当于 MethodInterceptor

4、@AfterThrowing 抛出通知,相当于 ThrowAdvice

5、@After 最终通知,不管是否异常,该通知都会执行

转载于:https://www.cnblogs.com/xb1223/p/10171159.html

AOP——基于AspectJ的注解来实现AOP操作相关推荐

  1. SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP

    静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...

  2. Spring AOP技术(基于AspectJ)的Annotation开发

    Spring AOP技术(基于AspectJ)的Annotation开发 @(Spring)[aop, spring, xml, Spring, annotation, aspectJ] Spring ...

  3. Spring AOP技术(基于AspectJ)的XML开发

    Spring AOP技术(基于AspectJ)的XML开发 @(Spring)[aop, spring, xml, Spring, annotation, aspectJ] Spring AOP技术基 ...

  4. AOP的自动代理(基于AspectJ框架)

    AOP的通知类型: aop联盟 定义 aop通知类型,spring 对 aop联盟规范支持. AOP 联盟不是Spring的,先是AOP联盟定义了一个接口org.springframework.aop ...

  5. (转)使用Spring的注解方式实现AOP的细节

    http://blog.csdn.net/yerenyuan_pku/article/details/52879669 前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Sp ...

  6. AOP(基于注解对AspectJ操作)

    一.AOP底层使用动态代理 (1)有两种情况动态代理 第一种有接口情况,使用JDK动态代理 第二种没有接口情况,使用CGLIB动态代理 1.使用JDK动态代理,使用Proxy类里面的方法创建代理对象 ...

  7. Spring Aop(四)——基于Aspectj注解的Advice介绍

    4 基于Aspectj注解的Advice介绍 之前介绍过,Advice一共有五种类型,分别是before.after return.after throwing.after(finally)和arou ...

  8. 基于XML及注解配置方式实现AOP及aspectJ表达式

    aspectJ表达式结构 切入点表达式 execution (* com.sample.service.impl...(..)) 1.execution(): 表达式主体. 2.第一个号:表示返回类型 ...

  9. 基于@AspectJ配置Spring AOP之一--转

    原文地址:http://tech.it168.com/j/2007-08-30/200708302209432.shtml 概述 在低版本Spring中定义一个切面是比较麻烦的,需要实现特定的接口,并 ...

最新文章

  1. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结
  2. python实现归一化去噪_二维FFT的归一化处理
  3. 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
  4. ‘聪明的搜索算法’ A*算法
  5. mysql qps 索引查询_【MySQL】MySQL配置调优之 QPS/TPS/索引缓存命中率、innoDB索引缓存命中率、查询缓存命中率查看...
  6. HTTP协议扫盲(一)HTTP协议的基本概念和通讯原理
  7. hadoop单击模式环境搭建
  8. jquery.form 异步校验_利用jQuery.validate异步验证用户名是否存在
  9. implements Serializable有什么作用
  10. Oracle Windows ODBC 数据源配置。
  11. react WangEditor 编辑器阿里云OSS上传图片
  12. 实验一 结构化分析(软件工程)
  13. Epson爱普生L3100 L3101 L3110 L3150 L3168系列清零软件废墨清零软件+教程
  14. 居住证服务器维护需要多长时间,居住证正在制证要多久能拿到
  15. tomcat 是什么
  16. 计算机原理加法指令流程图,加法器电路设计方案汇总(八款模拟电路设计原理详解)...
  17. 生活总结[置顶] 程序员的奋斗史(十八)——人活着,只是一种态度
  18. 隐私黑产:2亿余条个人信息卖了2000余万元
  19. 聪明人喜欢挑战性,高难度excel操作技巧你会几个?
  20. False Coin

热门文章

  1. 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从
  2. 聚类算法详解——深度AI科普团队
  3. Matlab线性/非线性规划优化算法(1)
  4. kibana 查询_干货 | Elasticsearch、Kibana数据导出实战
  5. php转移单引号,php如何转义单引号
  6. vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
  7. 新电脑怎么分盘_新买的笔记本电脑收货后,该如何验机?
  8. 值得推荐的威胁情报平台
  9. python+Django学习资源汇总-更新中
  10. 湖北省计算机技能高考c语言试题及答案,最新湖北省技能高考C语言测试题