AOP入门案例

AOP相关概念

  • Joinpoint(连接点):就是方法
  • Pointcut(切入点):就是挖掉共性功能的方法
  • Advice(通知):就是共性功能,最终以一个方法的形式呈现
  • Aspect(切面):就是共性功能与挖的位置的对应关系
  • Target(目标对象):就是挖掉功能的方法对应的类产生的对象,这种对象是无法直接完成最终工作的
  • Weaving(织入):就是将挖掉的功能回填的动态过程
  • Proxy(代理):目标对象无法直接完成工作,需要对其进行功能回填,通过创建原始对象的代理对象实现
  • Introduction(引入/引介):就是对原始对象无中生有的添加成员变量或成员方法

AOP开发过程

  • 开发阶段(开发者完成)
    • 正常的制作程序
    • 将非共性功能开发到对应的目标对象类中,并制作成切入点方法
    • 将共性功能独立开发出来,制作成通知
    • 在配置文件中,声明切入点
    • 在配置文件中,声明切入点与通知间的关系(含通知类型),即切面
  • 运行阶段(AOP完成)
    • Spring容器加载配置文件,监控所有配置的切入点方法的执行
    • 当监控到切入点方法被运行,使用代理机制,动态创建目标对象的代理对象,根据通知类别,在代理对象的对应位置将通知对应的功能织入,完成完整的代码逻辑并运行

新建这四个文件
在这里插入图片描述
pom文件
在这里插入图片描述

UserService文件
在这里插入图片描述
UserServiceImpl文件
在这里插入图片描述
App文件
在这里插入图片描述


AOP开发方式

  • XML方式
  • XML+注解方式

入门案例制作分析

  • 1.导入相关坐标
  • 2.缺认要抽取的功能,并将其制成方法保存到专用的类中,删除原始业务中对应的功能
  • 3.将所有进行AOP操作的资源加载到IOC容器中
  • 4.使用配置的方式描述被抽取功能的位置,并描述被抽取功能与对应位置的关系
  • 5.运行程序

在pom文件里导入坐标
在这里插入图片描述

假设UserServiceImpl含有的共性功能是输出的四个字,共性功能,将这行删除
在这里插入图片描述
在这里插入图片描述
新建AOPAdvice文件
在这里插入图片描述
添加到xml中
在这里插入图片描述
添加一下头
在这里插入图片描述
在xml里添加如下语句

    <aop:config>
        <aop:pointcut id="pt" expression="execution(* *..*(..))"/>
        <aop:aspect ref="myAdvice">
            <aop:before method="function" pointcut-ref="pt"/>
        </aop:aspect>
    </aop:config>

在这里插入图片描述
运行可见导入成功

步骤

  • 1.抽取共性功能
  • 2.制作通知类,在类中定义一个通知方法用于完成共性功能
  • 3.配置共性功能成为spring控制的资源
  • 4.配置AOP
  • 5.配置切入点
  • 6.配置切面(切入点与通知的关系)
  • 7.配置具体的切入点对应通知中那个操作方法

入门案例制作步骤

  • 1.导入坐标
  • 2.功能分离(实际开发过程先设计再制作)
  • 3.配置关系
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值