zoukankan      html  css  js  c++  java
  • springAop介绍及使用

    一.AOP 面向切面编程思想

    横向重复,纵向抽取
    以前的案例中: filter中, 动态代理 , interceptor

    二.动态代理

    1.通过动态代理可以体现aop思想
    2.对目标对象中的方法进行增强

    三.spring实现aop的原理

    1. 动态代理(优先)
      被代理对象必须要实现接口,才能产生代理对象,如果没有接口将不能使用动态代理技术
    2. cglib代理(没有接口)
      第三方代理技术,cglib代理.可以对任何类生成代理.代理的原理是对目标对象进行继承代理. 如果目标对象被final修饰.那么该类无法被cglib代理.

    四.spring aop开发:可以对任何类进行代理增强

    spring封装了动态代理代码.不需要手写动态代理代码.封装了cglib代理.

    五.spring中名词:

    Joinpoint(连接点): 目标对象中,所有可以增强的方法
    Pointcut(切入点): 目标对象,已经或需要增强的方法
    advice(通知/增强): 需要增强的代码.
    weaving(织入): 动词.将通知应用到切点的过程.
    target(目标对象): 被代理对象.
    proxy(代理对象): 将通知织入到目标对象之后,形成代理对象
    aspect(切面): 切入点+通知

    六.步骤

    1. 导包
      4+2:核心包+日志包
      2:spring中aop+aspect
      2:spring依赖包:aop联盟+weaving

    2. 准备目标对象

    3. 准备通知类
      前置通知
      后置通知 方法正常结束
      环绕通知
      异常拦截通知
      后置通知 无论如何都执行

    4. 配置文件中配置,导入aop约束

      • 目标对象

      • 通知对象

      • 配置aop:config

        <aop:config>
        	<aop:ponint-cut id="切点名称" expression="execution(切点表达式)" />
        	<aop:aspect ref="通知对象名称" >
        	<aop:before method="" ponintcut-ref=""  />
        	<aop:after-returning method="" ponintcut-ref=""  />
        	<aop:around method="" ponintcut-ref=""  />
        	<aop:after-throwing method="" ponintcut-ref=""  />
        	<aop:after method="" ponintcut-ref=""  />
        </aop:aspect>
        

    七.扩展:使用注解完成aop

    1. 导包
      4+2
      2 aop+aspect
      2 aop联盟+weaving

    2. 准备目标对象

    3. 准备通知类
      前置通知
      后置通知 方法正常结束
      环绕通知
      异常拦截通知
      后置通知 无论如何都执行

    4. 配置文件中配置,导入aop约束

      • 目标对象
      • 通知对象
      • <aop:aspect-autoproxy> 开启注解aop
    5. 注解
      @Aspect 指定当前类是通知类
      @Before 前置通知方法
      @after-returning 后置通知方法
      @around 环绕通知方法
      @after-throwing 异常拦截通知方法
      @after 后通知方法
      @PointCut 抽取切点表达式

  • 相关阅读:
    『高性能模型』卷积复杂度以及Inception系列
    『高性能模型』轻量级网络梳理
    『计算机视觉』YOLO系列总结
    利用Azure Functions和k8s构建Serverless计算平台
    我如何通过K8S开发认证(CKAD)考试
    对Windows桌面应用程序进行UI自动化测试
    Service Fabric是什么?
    如何把遗留的Java应用托管在Service Fabric中
    如何在本地数据中心安装Service Fabric for Windows集群
    当TFS/VSTS遇上Power BI
  • 原文地址:https://www.cnblogs.com/itzlg/p/10699162.html
Copyright © 2011-2022 走看看