案例:百度网盘密码数据兼容处理
分析:
①:在业务方法执行之前对所有的输入参数进行格式处理一-trim()
②:使用处理后的参数调用原始方法——环绕通知中存在对原始方法的调用
AOP总结
●概念: AOP(Aspect Oriented Progr amming)面向切面编程,一种编程范式
●作用:在不惊动原始设计的基础上为方法进行功能增强
●核心概念
■代理( Proxy ) : SpringAOP的核心本质是采用代理模式实现的
■连接点( JoinPoint ) :在SpringAOP中 , 理解为任意方法的执行
■切入点( Pointcut ) :匹配连接点的式子,也是具有共性功能的方法描述
■通知( Advice ) :若干个方法的共性功能,在切入点处执行,最终体现为一个方法
■切面( Aspect ) : 描述通知与切入点的对应关系
■目标对象 ( Target ) : 被代理的原始对象成为目标对象
●切入点表达式标准格式 :动作关键字(访问修饰符返回值包名 .类/接口名.方法名(参数)异常名)
●切入点表达式描述通配符 :
■ 作用:用于快速描述,范围描述
■ * :匹配任意符号(常用)
■ … :匹配多个连续的任意符号(常用)
■ + :匹配子类类型
●通知类型
■前置通知
■后置通知
■环绕通知( 重点)
◆环绕通知依赖形 参ProceedingJoinPoint才能实现对原始方法的调用
◆环绕通 知可以隔离原始方法的调用执行
◆环绕通 知返回值设置为0bject类型
◆环绕通 知中可以对原始方法调用过程中出现的异常进行处理
■返回后通知
■抛出异常后通知
●获取切入点方法的参数
■JoinPoint :适用于前置、后置、返回后、抛出异常后通知,设置为方法的第一个形参
■ProceedJointPoint:适用于环绕通知
●获取切入点方法返回值
■返回后通知
■环绕通知
●获取切入点方法运行异常信息
■抛出异常后通知
■环绕通知