什么是AOP

  AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。

  实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

使用场景

  Authentication 权限

  Caching 缓存

  Context passing 内容传递

  Error handling 错误处理

  Lazy loading 懒加载

  Debugging  调试

  logging, tracing, profiling and monitoring 记录跟踪 优化 校准

  Performance optimization 性能优化

  Persistence  持久化

  Resource pooling 资源池

  Synchronization 同步

  Transactions 事务

配置AOP(demo)

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>

<tx:advice id="tx-advice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut expression="execution(public * com.lizhiji.service.*.*(..))"
id="pointcut" />
<aop:advisor advice-ref="tx-advice" pointcut-ref="pointcut" />
</aop:config>

AOP代理对象生成

在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

转载于:https://www.cnblogs.com/fort-lizhiji/p/7726293.html

Sring AOP(简记)相关推荐

  1. Spring AOP增强(Advice)

    Sring AOP通过PointCut来指定在那些类的那些方法上织入横切逻辑,通过Advice来指定在切点上具体做什么事情.如方法前做什么,方法后做什么,抛出异常做什么. 再来看一下图 定义Point ...

  2. Spring AOP实现原理,从代理说起

    前言 为了理解Spring AOP,我们先来了解一下Java的代理模式 什么是代理? 举个例子来说明代理的作用: 假设我们想邀请一位明星,那么并不是直接联系明星,而是联系明星的经纪人,来达到同样的目的 ...

  3. 三大框架-Spring

    一 .概述 spring框架是以一个分层架构,有七个定义良好的模块组成,Spring模块构建在核心容器之上,核心容器定义了创建,配置和管理bean方式: 1.Spring Core:核心容器 ,提供S ...

  4. Spring AOP 源码分析 - 拦截器链的执行过程

    1.简介 本篇文章是 AOP 源码分析系列文章的最后一篇文章,在前面的两篇文章中,我分别介绍了 Spring AOP 是如何为目标 bean 筛选合适的通知器,以及如何创建代理对象的过程.现在我们的得 ...

  5. spring aop设计模式_Spring框架中设计模式的运用

    设计模式大家可能随口就能说出总共有23种,但是具体怎么用,或者在常用的组建中有哪些体现,这时候不一定说的上来了.接下来几篇文章,我们一起深入理解.首先我们一起了解下常用的组建中是怎么运用的,比如 JD ...

  6. Spring面试之不同版本AOP执行顺序详解

    1.AOP常用注解: @Before 前置通知:目标方法之前执行 @After 后置通知:目标方法之后执行(始终执行) @AfterReturning 返回后通知:执行方法结束前执行(异常不执行) @ ...

  7. spring aop实例讲解_Spring核心技术详解(一)

    一.Sring简介 Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架.Spring核心是IOC和AOP. Spring主要优点包括: 方便解耦,简化开发,通过Spring提供的I ...

  8. Spring IOC AOP详细笔记

    spring 文章目录 spring 什么是spring spring框架作用: ioc aop spring基本配置 IOC掌握什么? IOC创建对象方式 Spring配置 别名配置 bean配置 ...

  9. 简单两步,spring aop上手即用即会

    面向切面思想在于它的干净,对逻辑代码没有任何侵入性,只需要在想要切入的方法或者类之上加上自定义的注解即可. 首先,就是自定义一个注解: //这里我们定义一个名为 @MyPointer 的注解 @Doc ...

最新文章

  1. uva 544(kruskal 变形)
  2. 数据库中如何判断某参数为空就不执行where条件
  3. shell实例第18讲:利用gzexe加密shell脚本
  4. react-router使用教程
  5. Axure RP使用攻略--动态面板的用途(8)
  6. Flutter获取随机数 Dart语言核心基础
  7. python cmdb_python相关cmdb系统
  8. SharePoint 2010 BDC Model项目部署出错:“The default web application could not be determined.”...
  9. hibernate教程笔记5
  10. Android 项目必备(四十一)-->Android 开发实战经验总结
  11. echarts:中国地图-省市区二级联动
  12. c语言中整形的最大最小值,C语言编写程序输出10个整数中最小值或最大值
  13. HTTP协议为什么是无状态的?无状态指的是什么
  14. 如何保证缓存一致性?
  15. android7.0 360os,360 OS 2.0评测 安全与体会的全部升级
  16. staruml 依赖于 libgcrypt11 (= 1.4.5);然而:未安装软件包 libgcrypt11。
  17. 【网络安全学习笔记】
  18. 说一下如何下载各论坛免费文档
  19. 2023年——个人每日分享汇总
  20. YX150C 纯IO口 8位OTP单片机

热门文章

  1. 简单使用Git和Github来管理自己的代码和读书笔记
  2. es6 --- 使用Symbol保护私有变量
  3. .NET 3.5 - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
  4. 监控工具之zabbix server3.4 部署配置
  5. 使用 typescript ,提升 vue 项目的开发体验(1)
  6. HTML学习笔记06-连接
  7. JVM(4)之 使用MAT排查堆溢出
  8. RabbitMQ快速安装配置指南
  9. 腾讯云 Centos 配置 JDK Tomcat Mysql
  10. childNodes详解