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框架相关推荐

  1. 黄金时代 李银河_一周前五篇文章:开发人员的黄金时代

    黄金时代 李银河 每周,我都会汇总这些数字并听取嗡嗡声,以便在本周(2014年11月3日至7日)在Opensource.com上为您带来上周的最佳开源新闻和故事. 一周前五篇文章 5. 爱斯基摩人使用 ...

  2. 带你少走弯路:五篇文章学完吴恩达机器学习

    本文是吴恩达老师的机器学习课程[1]的笔记和代码复现部分,这门课是经典,没有之一.但是有个问题,就是内容较多,有些内容确实有点过时. 如何在最短时间学完这门课程?作为课程的主要翻译者和笔记作者,我推荐 ...

  3. 智能组件和木偶组件_一周前五篇文章:Linux,木偶和巨魔

    智能组件和木偶组件 每周,我都会统计数字并听取嗡嗡声,以在Opensource.com上为您带来上周最好的开源新闻和故事. 一周前五篇文章 #5. 为有4个友好木偶的孩子提供开源教育 我采访了Hell ...

  4. 《考取HCIA证书看我就够了》第五篇:[HCIA-IoT]物联网技术之感知层技术概览

    系列文章目录 <考取HCIA证书,看我就够了> 1.华为职业认证体系及HCIA介绍 2.[HCIA-IoT]物联网起源与发展 3.[HCIA-IoT]物联网技术之网络层技术概览 4.[HC ...

  5. 推荐五篇论文| 轻量级的Transformer; 对比学习;ResNeSt;Shortcut Learning等

    本文介绍了最近比较有意思的五篇文章: 轻量级的transformer 监督式的对比学习 shortcur learning ResNeSt Attention模块的分析 Lite Transforme ...

  6. 第五篇:mig读写时序下板实现

    FPGA开源工作室将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3. 本实验和工程基于Digilent的Arty Artix- ...

  7. go开源项目整理-新手篇_一周的前5篇文章:您正在从事什么开源项目?

    go开源项目整理-新手篇 每周,我都会汇总这些数字并听取嗡嗡声,以在2014年10月6日至10日这周为您带来上周在Opensource.com上的最佳开源新闻和故事. 一周前五篇文章 #5. Mood ...

  8. 五篇代表作如何选?2023年国自然:继续不再标第一/通讯

    2023年的国自然马上就要申报了.到今天,想必大部分人已经开始网上填写了:从去年开始实行:论文不再标注第一或通讯作者!   按照基金委给出的说法是:为减少代表作录入错误而致不予受理! 那么,作为申请人 ...

  9. 规模化敏捷框架何从入手?这篇文章把SAFe讲透了!

    摘要:敏捷软件开发理念已渐渐被业界普遍接受,越来越多的公司和团队不得不面对一个新的问题,就是规模化敏捷的引入和实现.目前市场上规模化框架主要有SAFe,Less,Scrum of Scrums, Sp ...

最新文章

  1. 为什么edge AI是一个无需大脑的人
  2. 听说有人解决了三体问题,我去做了一点微小的调查
  3. notepad++安装
  4. linux 用户空间 和 内核空间 延时函数
  5. 电脑所有程序里有不一样颜色_12个好玩的电脑屏保,让你成为别人眼中最靓的仔。...
  6. 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
  7. zynq中纯Programmable Loigc编程
  8. 五、概念数据模型(CDM生成LDM,PDM和OOM)
  9. 什么情况下使用weak关键字,相比assign有什么不同
  10. Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow
  11. 视频工具下载(m3u8、MP4)
  12. ajaxFileUpload上传文件
  13. 陕西师范大学第七届程序设计竞赛网络同步赛 D ZQ的睡前故事(java)
  14. IPSec IKEV2
  15. 2020中国网络安全年会论文发布 知道创宇ZoomEye引领全球网空测绘
  16. 利用MQTT协议与阿里云数据交互的python程序
  17. 认识单元测试中的打桩
  18. gyp: No Xcode or CLT version detected!
  19. 一文弄懂Hive中谓词下推(on与where的区别)
  20. 2022办公企业邮箱申请流程,总结申请公司电子邮箱的步骤是什么?

热门文章

  1. objective-c delegate
  2. JAVA12_12学习总结(JavaScript)
  3. Android——在线计算器完整代码
  4. python-不换行输出+print()完整参数详解
  5. Java获取当前年月日、时间
  6. 如何通俗理解 beta分布、汤普森采样和狄利克雷分布
  7. HIT 软件构造 lab2
  8. 计算机网络高频知识点(一)
  9. 日志服务与日志分析工具
  10. 某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问以下数据项的时候,1、5、1、3、5、2、4、1、2,出现缓存直接命中的次数是(),最后缓存中即将准备淘汰的数据项是()