面向切面编程(AOP)提供另一种角度来思考程序结构,通过这种方式弥补了
面向对象编程(OOP)的不足,除了类(classes)以外,AOP提供了切面。
切面对关注点进行模块化,例如横切多个类型和对象的事务管理。
Spring的一个关键的组件就是Aop框架,可以自由选择使用AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事务管理上,允许用户自定义切面,用AOP来完善OOP的使用,可以把Spring Aop看做是对Spring的一种增强!
AOP里面重要名词解释:
切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象,事务管理是j2ee应用中的一个关于和企鹅关注点的很好的例子。在Spring AOP中,切面可以使用通用类或者普通类中以@Aspect注解来实现。
AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面契约(包括通知方法执行等功能),在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。
引入(Introduction): 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。
目标对象(Target Object): 包含连接点的对象。也被称作被通知或被代理对象。POJO
前置增强:在某个链接之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)
返回后增强:在某个链接正常完成执行的通知。例如:一个方法没有抛出任何异常,正常返回。
抛出异常后增强:在方法抛出异常退出时执行后的通知。
后置增强:当某连接点退出的时候执行的通知。(不论是正常返回还是异常退出)
环绕增强:包围一个连接点的通知。如方法的调用,这是最强大的一种通知类型,环绕增强可以在方法调用前后完成自定义的行为,它也会选择是否继续执行连接点或直接返回他们自己的返回值或抛出异常来结束执行。
环绕增强是最常见的一种通知类型,大部分基于拦截的AOP框架,例如nanning和Jboss4
AOP的优点:
1-降低模块之间的耦合度。
2-使系统容易扩展。
3-更好的代码复用。
AOP的应用场景:
1.日志处理
2.用户登录
3.权限(Authentication )
4.性能优化(Performance optimization)
5.事务(Transactions )
6.记录跟踪 优化 校准(logging, tracing, profiling and monitoring)
7.调试(Debugging)
8.懒加载(Lazy loading)
9.错误处理(Error handling)
10.资源池(Resource pooling)
11.同步(Synchronization)

什么事aop,aop的作用是什么?aop在项目哪里使用到了相关推荐

  1. 一步一步手绘Spring AOP运行时序图(Spring AOP 源码分析)

    相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...

  2. AOP技术介绍--(AOP技术基础)

    2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析.他们研究出 ...

  3. 我心中的核心组件(可插拔的AOP)~第十三回 实现AOP的拦截组件Unity.Interception...

    说在前 本节主要说一下Unity家族里的拦截组件,对于方法拦截有很多组件提供,基本上每个Ioc组件都有对它的实现,如autofac,它主要用在orchard项目里,而castle也有以拦截的体现,相关 ...

  4. Spring AOP编程-传统基于aspectJ切点AOP开发

    1.在配置文件上方增加aop相关配置. 2.在spring的配置文件中定义目标与通知. 3.使用aop:xxx标签来完成切面与切点声明. 4.我们使用aspectj的切面声明方式 需要在导入aspec ...

  5. Spring-05 -AOP [面向切面编程] -Schema-based 实现aop的步骤

    一.AOP [知识点详解] AOP:中文名称面向切面编程 英文名称:(Aspect Oriented Programming) 正常程序执行流程都是纵向执行流程 3.1 又叫面向切面编程,在原有纵向执 ...

  6. pointcut注解_Spring AOP使用指南,详细了解AOP相关注解

    Spring AOP 指导教程 什么是Spring AOP spring aop可以在spring构建的系统中使用面向切面编程.当然Spring Boot也是基于Spring构建的.使用AOP 可以实 ...

  7. .Net Aop(静态织入)框架 BSF.Aop

    BSF.Aop .Net 免费开源,静态Aop织入(直接修改IL中间语言)框架,类似PostSharp(收费): 实现前后Aop切面和INotifyPropertyChanged注入方式. 开源地址: ...

  8. spring AOP 之五:Spring MVC通过AOP切面编程来拦截controller

    示例1:通过包路径及类名规则为应用增加切面 该示例是通过拦截所有com.dxz.web.aop包下的以Controller结尾的所有类的所有方法,在方法执行前后打印和记录日志到数据库. 新建一个spr ...

  9. aop实现原理_Dubbo SPI中AOP实现原理

    官网:http://dubbo.apache.org/zh-cn/docs/2.7/source_code_guide/dubbo-spi/ 从官网说明中我们可以看到,dubbo spi是java s ...

  10. java aop管理权限_基于spring aop 权限管理系统原型 - andyj2ee - BlogJava

    此权限管理系统把待访问的业务层方法做为权限管理中的资源,通过spring aop 对接口方法进行拦截,来实现权限的管理,可以实现细粒度的权限控制. 在上文体验了spring aop 一些特性,aop ...

最新文章

  1. 提高期——SLA实践指导秘籍
  2. 删除vue打包大小限制_压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)...
  3. Oracle分析函数-OLAP函数总结
  4. 前端学习(2345):项目目录简单介绍
  5. at for lte
  6. PCB BOM也能如此好看?图形化交互式BOM工具Interactive Html Bom使用分享
  7. 现代软件工程第五周作业
  8. Java中foreach 的用法以及注意事项
  9. 影视剪辑,12天自学视频剪辑入门规划
  10. java斗地主发牌教学,QQ游戏“斗地主”规则说明
  11. [扫盲教程]——Mac 新手最容易犯的几项错误
  12. 哇!8款帮你轻松瘦脸的美食
  13. UE4(虚幻4)中蓝图的使用
  14. 【雅思大作文考官范文】——第三篇:essay 'skeleton'(散文“骨架”)
  15. 你的手帕再也不干净了_我再也不会将手机带回国际航班了。 你也不要
  16. 推荐十本C#编程的最佳书籍
  17. 多个资本强力支持,高仙机器人完成12亿元C轮融资
  18. android系统toast是什么意思,Android - Snackbar vs Toast - 使用和区别
  19. 自由到底意味着什么(三)个人商业模式
  20. wx.showToast()内容换行

热门文章

  1. vue 拖拽【单个div实现拖拽】
  2. 如何防御DDOS等流量攻击
  3. mysql全备和指定库和表备份,mysql日志的分类简介和作用, mysql加速跳过域名解析,mysql权限授予与收回,数据库实用篇~~Tring
  4. 2021年广西省安全员C证免费试题及广西省安全员C证考试试卷
  5. PHP开发环境搭建和phpinfo函数
  6. 《信息技术》期刊简介
  7. 融云 WICC:Unity、Beeto、荔枝、阿里云、StarMaker、LiveMe、积目…花城论剑
  8. Android Studio快速集成讯飞SDK实现文字朗读功能
  9. 从《生活计划》实践,剖析自我执行力
  10. scriptmanager