AOP利用一种称为“横切”的技术,剖开对象内部,并将公共行为封装到可重用模块,从而减少重复代码,降低耦合。
AOP术语:切面:是指封装横切到系统功能的类,包含通知和切点 切点:定义切面插入在哪些方法上,确定切面使用范围
通知:定义了切点处所要执行的程序代码以及执行时机
连接点:是在应用执行过程中满足切点范围的具体的点
织入:是把切面插入到目标对象上
通过aop:config标签配置所有的切面
通过aop:pointcut标签配置切点,使用切点表达式来指定范围
通过aop:aspect定义切面,指定引用的通知以及通知的类型和切点
通知根据通知的时机区分有五种类型:
前置通知,使用aop:before标签,在方法之前执行,可以通过JoinPoint参数获取连接点信息,
后置通知,使用aop:after标签,在方法之后执行,无论方法内部是否抛出异常,可以通过JoinPoint参数获取连接点信息,
后置返回通知,使用aop:after-returning标签,在方法之后执行并且方法内部不能抛出异常,可以通过JoinPoint参数获取连接点信息,
后置异常通知,使用aop:after-throwing标签,在方法内部抛出异常时执行,可以通过JoinPoint参数获取连接点信息,
环绕通知,使用aop:around标签,在方法之前和之后都执行,通过ProceedingJoinPoint参数来获取连接点信息
学习Spring AOP优点。
-
解耦合:AOP可以将横切关注点(如日志记等)与核心业务逻辑分离,从而提高了代码的模块化和可维护性。2.重用性:通过AOP,可以编写通用的横切关注点,并在多个模块或组件中重用它们,从而减少了重复代码的编写,提高了代码的重用性。3.集中式管理:AOP可以跨越多个组件的横切关注点进行集中式管理。4.增强功能:AOP可以通过在特定的连接点上注入额外的行为,例如日志记录、事务管理等,从而增强了程序的功能性。5.提高可维护性:通过AOP,可以将与核心业务逻辑无关的横切关注点从业务逻辑中分离出来,使得代码更易于理解和维护。