app系统 什么是aop

摘要在软件行业 , AOP代表面向方面编程的缩写,意思是:一种面向方面编程的技术 , 通过预编译和运行时动态代理实现程序功能的统一维护 。AOP是OOP的延续 , 是软件开发的热点 , 是Spring框架中的重要内容,是函数式编程的衍生范式 。AOP可以用来隔离业务逻辑的各个部分,使得业务逻辑各个部分的耦合度较低,提高了程序的复用性,同时也提高了开发效率 。
aop的相关概念外观(部分):方面声明类似于Java中的类声明,其中包含了一些切入点和相应的通知 。在Spring AOP中,可以使用基于模式或@Aspect注释来实现方面 。
接合点(连接点)表示程序中定义明确的点 , 通常包括方法调用、对类成员的访问、异常处理块的执行等等 。它也可以嵌套其他关节点 。在Spring AOP中,连接点总是代表一个方法的执行 。
切入点(切点)表示一组连接点,它们或者通过逻辑关系组合在一起 , 或者通过通用和正则表达式等聚集在一起 。它定义了相应建议的位置 。匹配连接点的断言 。通知通知与一个连接点切入点表达式相关联 , 并在满足这个切入点的连接点上运行 。切入点表达式如何匹配切入点是AOP的核心:Spring默认使用AspectJ切入点语法 。
建议(通知)建议定义了在切入点中定义的程序点的具体操作 。许多AOP框架(包括Spring)使用拦截器作为通知模型 , 并维护以连接点为中心的拦截器链 。它使用before、after和around来区分它是在每个关节点的执行代码之前、之后还是代替执行代码 。有几种类型的建议 。
建议之前在连接点之前执行的通知 。虽然before advice是在join point之前执行的 , 但是除非发生异常,否则它无法停止join point的执行(也就是说,我们无法人为决定是否继续执行join point中的代码) 。
退货后通知连接点正常返回后执行的通知 。
抛出建议后当连接点抛出异常时执行的通知 。
(最终)建议后无论连接点正常退出还是发生异常,都将执行通知 。
围绕建议在连接点前后执行的通知 。这是最常用的建议 。
介绍简介可以向现有对象添加新的属性和方法 。Spring允许向任何被代理的对象引入新的接口(和相应的实现) 。例如,您可以使用import使bean实现IsModified接口,从而简化缓存机制 。
目标(目标对象)编织成建议的目标对象 。因为Spring AOP是通过运行时代理实现的 , 所以这个对象总是被代理的对象 。
编织(编织)将方面与其他对象连接起来并创建高级对象的过程 。将方面连接到其他应用程序类型或对象,并创建一个通知对象 。这些可以在编译时(例如,使用AspectJ编译器)、类加载时和运行时完成 。Spring和其他纯Java AOP框架一样,在运行时完成编织 。
课堂部分示例【app系统 什么是aop】packagecom.ambulance.biz.base;importcom.alibaba.fastjson.JSON;importlombok.extern.java.Log;importorg.aspectj.lang.JoinPoint;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.springframework.stereotype.Component;importorg.springframework.web.context.request.RequestContextHolder;importorg.springframework.web.context.request.ServletRequestAttributes;importjavax.servlet.http.HttpServletRequest;importjava.util.Arrays;importjava.util.List;@Aspect//标识切面类@Component//加入IOC容器@Log//logpublicclassAspectConfig{ //execution([可见性]返回类型[声明类型].方法名(参数)[异常]) 其中[]内的是可选的,其它的还支持通配符的使用: //*:匹配所有字符 //..:一般用于匹配多个包 , 多个参数 // :表示类及其子类 //运算符有:

    推荐阅读