AOP 面向切面编程

搭建环境 需要 9个包 链接: https://pan.baidu.com/s/1M0QQtX0aiYjmFoWayFHoHA 密码: kapc

切面  切点save*()  连接点  通知

切面 可以当成一个类来理解  对多个切点进行统一的前置通知 后置通知

切点PointCut  监控的方法

连接点JoinPoint 方法执行的时候才会发生  当成对象

前置通知 -> save*() -> 后置通知

配置AOP:

<aop:config><aop:aspect ref="firstAop"><aop:before method="befores" pointcut-ref="firstPoint"/>           //前置通知<aop:after method="afters" pointcut-ref="firstPoint"/>             //后置通知<aop:after-returning method="returning" returning="result" pointcut-ref="firstPoint"/>    //后置返回通知<aop:after-throwing method="throwing" throwing="ex" pointcut-ref="firstPoint"/>     //后置异常通知 <!-- 根据表达式来 确定我们的方法的监控名单 execution(* com.lanou.service.impl.ServiceImpl.*(..))第一个*表示所有返回值 第二个*()表示所有方法 括号里面的.. 表示所有参数--><aop:pointcut id="firstPoint" expression="execution(* com.lanou.service.impl.UserServiceImpl.*(..))"/>    </aop:aspect>
</aop:config>

程序执行过程:

1.首先根据切点 进行对应方法的监控

2.然后当监控的方法真正执行的时候

再来找到我们对应的通知 执行通知对应的方法

3.顺序为 前置通知 -> 真正执行的方法 -> 后置通知

有后置返回通知和后置异常通知时  后置返回通知 -> 后置异常通知

环绕通知
<aop:config><aop:aspect ref="firstAop"><!-- 环绕通知 --><aop:around method="arounds" pointcut-ref="firstPoint"/><!-- 根据表达式来 确定我们的方法的监控名单 execution(* com.lanou.service.impl.ServiceImpl.*(..))第一个*表示所有返回值 第二个*()表示所有方法 括号里面的.. 表示所有参数--><aop:pointcut id="firstPoint" expression="execution(* com.lanou.service.impl.UserServiceImpl.*(..))"/>    </aop:aspect>
</aop:config>
// 环绕通知方法public void arounds(ProceedingJoinPoint joinPoint) {try {System.out.println("前置通知");Object result = joinPoint.proceed();System.out.println("result:" + result);System.out.println("后置返回通知");} catch (Throwable e) {// TODO Auto-generated catch blockSystem.out.println("后置异常通知");e.printStackTrace();} finally {System.out.println("后置通知");}}

Spring框架四AOP相关推荐

  1. Spring 框架之 AOP 原理深度剖析!|CSDN 博文精选

    作者 | GitChat 责编 | 郭芮 出品 | CSDN 博客 AOP(Aspect Oriented Programming)面向切面编程是 Spring 框架最核心的组件之一,它通过对程序结构 ...

  2. 详解Spring框架的AOP机制

    AOP是Spring框架面向切面的编程思想,AOP采用一种称为"横切"的技术,将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,在合适的时机将这些切面横向切入到业务流程指定 ...

  3. Spring 框架的AOP之注解的方式

    1. 环境搭建 1.1 导入 jar 包 Spring 框架的基本开发包(6个); Spring 的传统AOP的开发包 spring-aop-4.3.10.RELEASE org.aopallianc ...

  4. spring框架aop_使用Spring框架和AOP进行动态路由

    spring框架aop 本文的总体思路是展示业务交易如何动态触发业务事件以进行子系统处理. 本文显示的示例有效地使用了Spring框架2.0和Spring AOP来将业务服务与子系统处理功能分离. 现 ...

  5. java 路由框架_使用Spring框架和AOP实现动态路由

    本文的大体思路是展示了一次业务交易如何动态地为子系统处理过程触发业务事件.本文所示的例子使用Spring框架和Spring AOP有效地解耦业务服务和子系统处理功能.现在让我们仔细看看业务需求. 业务 ...

  6. Spring框架之AOP

    AOP概念: 1 .什么是 AOP (1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. (2 ...

  7. spring框架复习--aop,事务

    AOP概述 1.AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 2. 利用AOP可以对业务逻 ...

  8. Spring框架----四种常用通知类型

    用于记录日志的工具类,它里面提供了公共的代码 /*用于记录日志的工具类,它里面提供了公共的代码*/ public class Logger {/*前置通知*/public void beforePri ...

  9. Spring框架之AOP详解(带实战详细步骤)

    Spring之AOP AOP简介: 解决的问题:解决了需求的改变,造成了原有没必要改变的代码,需要去改变它: 比如:书籍的增删改,本身只需要完成增删改的功能即可,这是如果需要添加日志功能,那么需要在原 ...

最新文章

  1. Manifest merger failed with multiple errors, see logs
  2. JDBC 学习(一)
  3. BufferedReader 和BufferedWriter
  4. VC++ 删除当前读取行 代码
  5. 计算机组成原理存储结构,计算机组成原理与体系结构----存储系统
  6. 计算机专业必须读的经典书籍
  7. 西浦与杭电计算机选哪个,四邮四电究竟谁强谁弱?哪三所大学报考更有性价比?...
  8. HTML多选框滚动条,08:HTMLayout 自定义滚动条样式
  9. 【Qt教程】1.10 - Qt5模态与非模态对话框( QDialog)
  10. Proxmox VE2.2虚拟化安装配置学习笔记(三)
  11. 一维数状数组区间修改,查询
  12. asp 基础操作之增删改查
  13. SQL Server2008如何设置开启远程连接
  14. 下载并安装 Azure Data Studio
  15. php在线文件编辑管理器 在线文本查看PHP插件
  16. 软考网络工程师好考吗?怎么备考?
  17. nextpolish安装_使用nextpolish对三代组装进行polish(v1.2.2版)
  18. 我的未来,何去何从?
  19. 五子棋联机对战(JAVA实现)含源码
  20. 北京哪些医院不用特意选择就可用社保卡直接就医?

热门文章

  1. Android:长度单位详解(px、dp、sp)
  2. Tomcat部署WebApp
  3. 采用热释电的智能家居系统
  4. 《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》
  5. 计算机在小学教育教学中的优劣,浅谈计算机教学在小学教育中的作用
  6. Reactor系列(十六)disposable停止Flux流
  7. Android Widget开发实例-电量监控
  8. win10修改默认浏览器失败
  9. 星际2服务器未能成功创建游戏,《星际争霸II》新手错误纠正
  10. php strftime 毫秒,php strftime函数获取日期时间(switch用法)