第五篇文章:AspectJ框架
spring原生的Aop实现,作为了解就行,不是重点
重点是Aspect(专门面向切面编程的框架)
1.Aspect切入点表达式(极其重要)
execution(访问权限 方法返回值 方法声明(参数) 异常类型)
简化:
execution( 方法返回值 方法声明(参数))
第一个before表示 ,在这个包的SomeServiceImpl这个类里面的doSome()方法前面插入myAspect方法,进行日志处理
为同一个方法绑定多个通知:
2.给切入点表达式起别名:使用@Pointcut注解
可以看到同一个切入点织入了多个切面,或者说多个切面切入到了同一个切入点
也就是说某处要加入好几个切面
这个时候发现execution后面的内容其实都一样,那这样重复写三次就非常麻烦,于是我们给execution后面的内容起一个别名,这样就可以用很短的几个单词代替原先execution后面很长的一串了
3.通知的类型:
(1)前置通知
@Aspect//表明这是一个切面类(AspectJ框架能识别出这是一个切面类),这个类里面是切面方法
public class test
{@Before("execution(public String com.bjpowernode.SomeServiceImpl.doSome(String,int))")public void Before(){System.out.println("前置通知:........");}
}
如果想在SomeServiceImpl类的所有方法前面都加一个前置通知:
@Before("execution(public * com.bjpowernode.SomeServiceImpl.*(..))")
返回值类型任意 方法名任意 传入方法的参数的类型也是任意
(2)后置通知:
@AfterReturning
@Aspect//表明这是一个切面类(AspectJ框架能识别出这是一个切面类),这个类里面是切面方法
public class test
{@AfterReturning("execution(public String com.bjpowernode.SomeServiceImpl.doSome(String,int))",returning ="obj")public void AfterReturning(Object obj){System.out.println("后置通知:........");}
}
(3)环绕通知:@Around
在目标方法前后通知
(4)@After 最终通知(其实这个关键字换成finally更好理解)
就是不管目标方法是否正常执行,最重的代码都会被执行
第五篇文章:AspectJ框架相关推荐
- 黄金时代 李银河_一周前五篇文章:开发人员的黄金时代
黄金时代 李银河 每周,我都会汇总这些数字并听取嗡嗡声,以便在本周(2014年11月3日至7日)在Opensource.com上为您带来上周的最佳开源新闻和故事. 一周前五篇文章 5. 爱斯基摩人使用 ...
- 带你少走弯路:五篇文章学完吴恩达机器学习
本文是吴恩达老师的机器学习课程[1]的笔记和代码复现部分,这门课是经典,没有之一.但是有个问题,就是内容较多,有些内容确实有点过时. 如何在最短时间学完这门课程?作为课程的主要翻译者和笔记作者,我推荐 ...
- 智能组件和木偶组件_一周前五篇文章:Linux,木偶和巨魔
智能组件和木偶组件 每周,我都会统计数字并听取嗡嗡声,以在Opensource.com上为您带来上周最好的开源新闻和故事. 一周前五篇文章 #5. 为有4个友好木偶的孩子提供开源教育 我采访了Hell ...
- 《考取HCIA证书看我就够了》第五篇:[HCIA-IoT]物联网技术之感知层技术概览
系列文章目录 <考取HCIA证书,看我就够了> 1.华为职业认证体系及HCIA介绍 2.[HCIA-IoT]物联网起源与发展 3.[HCIA-IoT]物联网技术之网络层技术概览 4.[HC ...
- 推荐五篇论文| 轻量级的Transformer; 对比学习;ResNeSt;Shortcut Learning等
本文介绍了最近比较有意思的五篇文章: 轻量级的transformer 监督式的对比学习 shortcur learning ResNeSt Attention模块的分析 Lite Transforme ...
- 第五篇:mig读写时序下板实现
FPGA开源工作室将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3. 本实验和工程基于Digilent的Arty Artix- ...
- go开源项目整理-新手篇_一周的前5篇文章:您正在从事什么开源项目?
go开源项目整理-新手篇 每周,我都会汇总这些数字并听取嗡嗡声,以在2014年10月6日至10日这周为您带来上周在Opensource.com上的最佳开源新闻和故事. 一周前五篇文章 #5. Mood ...
- 五篇代表作如何选?2023年国自然:继续不再标第一/通讯
2023年的国自然马上就要申报了.到今天,想必大部分人已经开始网上填写了:从去年开始实行:论文不再标注第一或通讯作者! 按照基金委给出的说法是:为减少代表作录入错误而致不予受理! 那么,作为申请人 ...
- 规模化敏捷框架何从入手?这篇文章把SAFe讲透了!
摘要:敏捷软件开发理念已渐渐被业界普遍接受,越来越多的公司和团队不得不面对一个新的问题,就是规模化敏捷的引入和实现.目前市场上规模化框架主要有SAFe,Less,Scrum of Scrums, Sp ...
最新文章
- 为什么edge AI是一个无需大脑的人
- 听说有人解决了三体问题,我去做了一点微小的调查
- notepad++安装
- linux 用户空间 和 内核空间 延时函数
- 电脑所有程序里有不一样颜色_12个好玩的电脑屏保,让你成为别人眼中最靓的仔。...
- 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
- zynq中纯Programmable Loigc编程
- 五、概念数据模型(CDM生成LDM,PDM和OOM)
- 什么情况下使用weak关键字,相比assign有什么不同
- Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow
- 视频工具下载(m3u8、MP4)
- ajaxFileUpload上传文件
- 陕西师范大学第七届程序设计竞赛网络同步赛 D	ZQ的睡前故事(java)
- IPSec IKEV2
- 2020中国网络安全年会论文发布 知道创宇ZoomEye引领全球网空测绘
- 利用MQTT协议与阿里云数据交互的python程序
- 认识单元测试中的打桩
- gyp: No Xcode or CLT version detected!
- 一文弄懂Hive中谓词下推(on与where的区别)
- 2022办公企业邮箱申请流程,总结申请公司电子邮箱的步骤是什么?
热门文章
- objective-c delegate
- JAVA12_12学习总结(JavaScript)
- Android——在线计算器完整代码
- python-不换行输出+print()完整参数详解
- Java获取当前年月日、时间
- 如何通俗理解 beta分布、汤普森采样和狄利克雷分布
- HIT 软件构造 lab2
- 计算机网络高频知识点(一)
- 日志服务与日志分析工具
- 某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问以下数据项的时候,1、5、1、3、5、2、4、1、2,出现缓存直接命中的次数是(),最后缓存中即将准备淘汰的数据项是()