AOP——基于AspectJ的注解来实现AOP操作
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操作相关推荐
- SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP
静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...
- Spring AOP技术(基于AspectJ)的Annotation开发
Spring AOP技术(基于AspectJ)的Annotation开发 @(Spring)[aop, spring, xml, Spring, annotation, aspectJ] Spring ...
- Spring AOP技术(基于AspectJ)的XML开发
Spring AOP技术(基于AspectJ)的XML开发 @(Spring)[aop, spring, xml, Spring, annotation, aspectJ] Spring AOP技术基 ...
- AOP的自动代理(基于AspectJ框架)
AOP的通知类型: aop联盟 定义 aop通知类型,spring 对 aop联盟规范支持. AOP 联盟不是Spring的,先是AOP联盟定义了一个接口org.springframework.aop ...
- (转)使用Spring的注解方式实现AOP的细节
http://blog.csdn.net/yerenyuan_pku/article/details/52879669 前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Sp ...
- AOP(基于注解对AspectJ操作)
一.AOP底层使用动态代理 (1)有两种情况动态代理 第一种有接口情况,使用JDK动态代理 第二种没有接口情况,使用CGLIB动态代理 1.使用JDK动态代理,使用Proxy类里面的方法创建代理对象 ...
- Spring Aop(四)——基于Aspectj注解的Advice介绍
4 基于Aspectj注解的Advice介绍 之前介绍过,Advice一共有五种类型,分别是before.after return.after throwing.after(finally)和arou ...
- 基于XML及注解配置方式实现AOP及aspectJ表达式
aspectJ表达式结构 切入点表达式 execution (* com.sample.service.impl...(..)) 1.execution(): 表达式主体. 2.第一个号:表示返回类型 ...
- 基于@AspectJ配置Spring AOP之一--转
原文地址:http://tech.it168.com/j/2007-08-30/200708302209432.shtml 概述 在低版本Spring中定义一个切面是比较麻烦的,需要实现特定的接口,并 ...
最新文章
- Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结
- python实现归一化去噪_二维FFT的归一化处理
- 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )
- ‘聪明的搜索算法’ A*算法
- mysql qps 索引查询_【MySQL】MySQL配置调优之 QPS/TPS/索引缓存命中率、innoDB索引缓存命中率、查询缓存命中率查看...
- HTTP协议扫盲(一)HTTP协议的基本概念和通讯原理
- hadoop单击模式环境搭建
- jquery.form 异步校验_利用jQuery.validate异步验证用户名是否存在
- implements Serializable有什么作用
- Oracle Windows ODBC 数据源配置。
- react WangEditor 编辑器阿里云OSS上传图片
- 实验一 结构化分析(软件工程)
- Epson爱普生L3100 L3101 L3110 L3150 L3168系列清零软件废墨清零软件+教程
- 居住证服务器维护需要多长时间,居住证正在制证要多久能拿到
- tomcat 是什么
- 计算机原理加法指令流程图,加法器电路设计方案汇总(八款模拟电路设计原理详解)...
- 生活总结[置顶] 程序员的奋斗史(十八)——人活着,只是一种态度
- 隐私黑产:2亿余条个人信息卖了2000余万元
- 聪明人喜欢挑战性,高难度excel操作技巧你会几个?
- False Coin
热门文章
- 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从
- 聚类算法详解——深度AI科普团队
- Matlab线性/非线性规划优化算法(1)
- kibana 查询_干货 | Elasticsearch、Kibana数据导出实战
- php转移单引号,php如何转义单引号
- vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
- 新电脑怎么分盘_新买的笔记本电脑收货后,该如何验机?
- 值得推荐的威胁情报平台
- python+Django学习资源汇总-更新中
- 湖北省计算机技能高考c语言试题及答案,最新湖北省技能高考C语言测试题