基于AspectJ注解配置AOP

1、加入jar包:

要在Spring应用中使用AspectJ注解,必须在classpath下包含AspectJ类库:aopalliance.jar、aspectj.weaver.jar、spring-aspects.jar和spring-aop.jar。

2、在配置文件中加入aop的命名空间:

  1)将aop Schema添加到<beans>根元素中

  2)要在springIOC容器中启用AspectJ注解支持,只要在Bean配置文件中定义一个空的XML元素<aop:aspectj-autoproxy>

  3)当SpringIOC容器侦测到Bean配置文件中的<aop:aspectj-autoproxy>元素时,会自动为与AspectJ切面匹配的Bean创建代理

3、基于注解方式:

  1)在配置文件中加入如下配置:<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

  2)把横切面关注点的代码抽象到切面的类中

    a. 切面首先是一个IOC容器的bean,即加入@Component注解

    b. 切面还需要加入@Aspect注解

  3)在类中声明各种通知(其中:AspectJ支持5钟注解通知:@Before-前置通知,在方法执行之前执行;@After-后置通知,在方法执行之后执行;@AfterRuning-返回通知,在方法返回结果之后执行;@AfterThrowing-异常通知,在方法抛出异常之后;@Around-环绕通知,围绕着方法执行)

    a. 声明一个方法

    b. 在方法前加入@Before注解

  4)可以在通知方法中声明一个类型为JoinPoint的参数,然后就能访问链接细节,如方法名称和参数

  5)  使用@Order注解指定切面的优先级,值越小优先级越高,例:@Order(1)

  6)  使用@Pointcut来声明切入点表达式

  

前置通知:

后置通知:

返回通知:

异常通知:

环绕通知:(不常用)

spring-AOP框架(基于AspectJ注解配置AOP)的更多相关文章

  1. Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探

    由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AO ...

  2. Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较

    本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...

  3. 基于@AspectJ注解配置切面与基于XML配置切面

    1. Waiter目标类 package com.smart.aop.advice.pointcut; public class Waiter { public void greetTo(String ...

  4. Spring框架学习之注解配置与AOP思想

         上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心 ...

  5. Spring Aop(二)——基于Aspectj注解的Spring Aop简单实现

    转发地址:https://www.iteye.com/blog/elim-2394762 2 基于Aspectj注解的Spring Aop简单实现 Spring Aop是基于Aop框架Aspectj实 ...

  6. 十四 Spring的AOP的基于AspectJ的注解开发

    Spring的AOP的基于AspectJ的注解开发 创建项目,引入jar包 编写目标类.切面类 配置目标类.切面类 在注解文件里开启AOP的开发 <?xml version="1.0& ...

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

    转发地址:https://www.iteye.com/blog/elim-2395315 4 基于Aspectj注解的Advice介绍 之前介绍过,Advice一共有五种类型,分别是before.af ...

  8. Spring学习记录(十三)---基于xml文件配置AOP

    上一篇讲了用注解配置AOP,现在讲用xml怎么配置AOP 其实逻辑是一样的,只是用xml的方法,要把这种逻辑写出来,告诉spring框架去执行. 例子:这里的例子和上一篇的例子一样.换成xml方式 / ...

  9. Spring注解配置Aop

    之前学习了SpringAop的基本原理.http://www.cnblogs.com/expiator/p/7977975.html 现在尝试使用注解来配置SpringAop. Aop,面向切面编程. ...

随机推荐

  1. chromium ⑤

    我们都知道chromium是用webkit完成页面显示的,   那么chromium是怎样集成和封装webkit的呢?   是怎样将webkit整合到自己的框架中,并将一个页面渲染出来的?   这篇我 ...

  2. delphi reintroduce作用

    当在子类中重载或者重新声明父类的虚方法时,使用  reintroduce   关键字告知编译器,可以消除警告信息. 如: TParent = class procedure proc;virtual; ...

  3. 深入了解HyperServer

    本文,我们将尝试深入了解uniGUI HyperServer. 可以将HyperServer所有功能分成三类: HyperServer和稳定性 HyperServer和可扩展性 HyperServer ...

  4. freeswitch笔记

    freeswitch知识点:播放录音命令:originate user/1000 &playback(/tmp/123.wav)查看当前注册用户命令:sofia status profile ...

  5. 图片宽度为2000px,使图片在电脑不同分辨率下都水平居中,不压缩。

    <div style="postion:relative;width:100%;overflow:hidden;"> <img src="路径" ...

  6. 2--Python入门--Python数据集合类型--列表

    在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...

  7. ecmall 如何新增挂件

    不知到该怎么开始介绍,就直接说了,比如要在商城首页上添加一个自己开发测试用的挂件 1.找到模版文件夹的index.html,路径:themes/mall/default/index.html 自己选一 ...

  8. Prepare paddle in Docker

    1. Install Docker sudo apt-get install -y docker.io a) pull repository from server in China, here is ...

  9. 第七十七课 最小生成树(Kruskal)

    添加kruskal算法: #ifndef GRAPH_H #define GRAPH_H #include "Object.h" #include "SharedPoin ...

  10. tinyxml2使用

    项目中遇到一个问题,C/C++需要与JAVA通信,JAVA方已经使用了XML序列化传输.本可以考虑JSON/GOOGLE PROTOCOL BUFFER的,但为了使JAVA方不做过多改动,坚持使用XM ...