AOP思想

作者: 过去与未来 | 来源:发表于2015-11-04 13:41 被阅读0次

AOP允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用只实现业务逻辑即可,并不负责其它的系统级关注点。

AOP的应用场景

日志记录、跟踪、监控与优化,性能统计、优化、安全、权限控制,应用系统的异常捕捉及处理,事务处理,缓存,持久化,懒加载,内容传递,调试,资源池,同步。


AOP种类

静态AOP

  • Aspect形式,通过特定的编辑器,将实现后的Aspect编译并织入到系统的静态类中。

动态AOP

  • AOP的织入过程在系统运行开始之后进行,而不是预先编译到系统中。

AOP的实现方法

静态:利用代理实现AOP功能

  • 代理工厂实现InvocationHandler接口

  • 新建学生代理方法返回Proxy.newProxyInstance方法 (入参为 目标对象的类加载器, 目标对象的实现接口, 代理类本身)

  • 重写invoke方法

  • 包装目标对象并返回对应的代理类对象

调用

利用接口实例化目标对象
实例化代理工厂
新建学生代理 方法入参为目标对象

在invoke方法中可以在method.invoke中织入对应的逻辑实现AOP

动态:利用CGLib实现AOP功能

CGLib代理工厂中实现MethodInterception接口

  • 在创建对象方法当中引入enhancer
  • 设置enhancer的父级class为目标对象
  • 设置回调 入参为当前对象
  • 返回enhancer.create
  • 重写intercept方法
  • 实例化object对象

在intercept方法中织入对应的逻辑实现AOP

调用

通过强转直接实例化CGLib代理工厂中创建的对象


直接利用aspect注解
在conf-aspect.xml配置注解对象

相关文章

  • iOS AOP框架Aspects实现原理

    前言 众所周知,Aspects框架运用了AOP(面向切面编程)的思想,这里解释下AOP的思想:AOP是针对业务处理...

  • Method Swizzle

    1、AOP编程思想 1.1、AOP是什么 AOP(Aspect Oriented Programming)直译为面...

  • AOP思想

    AOP是一种非侵入式的扩充对象、方法和函数行为的技术。通过AOP可以从“外部”去增加一些行为,进而合并既有行为或者...

  • AOP思想

    AOP允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。应用只实现业务逻辑即可,并不负责其它的系统级关注点。...

  • AOP/Spring AOP/Filter/拦截器 释义

    AOP AOP,面向切面编程,是一种编程思想。 Java中常见的AOP技术 Spring AOP Spring A...

  • 用抽两根烟的时间掌握Spring AOP——Spring 中面向

    一、AOP——另一种编程思想 1.1 什么是 AOP AOP (Aspect Orient Programming...

  • java动态代理的理解

    今天在学习sprig aop模块的时候,发现aop编程思想在很多地方都有很大的用处。既然aop是一种编程思想,那么...

  • Spring中AOP思想

    AOP思想 什么是AOP 是一种设计思想,是oop一种补充;AOP采取横向收取机制,取代了传统纵向继承体系重复性代...

  • Spring AOP学习

    一、AOP 面向切面编程技术,AOP也是一种思想,spring framework实现AOP是基于AspectJ的...

  • SSH框架之旅-struts2(4)

    1.Struts2 拦截器 1.1 AOP 思想 AOP 是 Aspect Objected Prograing(...

网友评论

      本文标题:AOP思想

      本文链接:https://www.haomeiwen.com/subject/mtoqhttx.html