zoukankan      html  css  js  c++  java
  • spring-AOP框架(基于AspectJ注解配置AOP)

    基于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来声明切入点表达式

      

     前置通知:

     后置通知:

    返回通知:

    异常通知:

    环绕通知:(不常用)

  • 相关阅读:
    django+xadmin在线教育平台慕学网(一)
    django.db.migrations.exceptions.InconsistentMigrationHistory django报错
    mac系统 MySQL 8.0.11版本,安装成功,使用Navicat连接失败
    MySQL-表操作
    MySQL的数据类型
    存储引擎
    库操作
    MySQL学习目录
    初识MySQL数据库
    静态方法和类方法
  • 原文地址:https://www.cnblogs.com/lijianda/p/8667416.html
Copyright © 2011-2022 走看看