AOP应用已经很广了,谈一谈平时工作用到的地方:
1. 打印摘要日志
打印调用服务时的调用的服务、方法、参数、执行结果、消耗时间
2. 详细的入参出参
打印调用服务时调用的参数列表,以及返回结果。基于日志量的考虑,对于频繁调用的查询类可能不需要打印;对于操作类服务,可以打印出入参出参
3. 性能监控
对于每个服务的调用、异步消息的处理、DAO的调用,以及对外围系统的远程调用,设置一个阀值,如果超过此阀值,可以打印出日志,便于排查问题
4.公共的参数设置
与本地线程变量ThreadLocal结合,便于服务内部使用;每次调用时,将参数设置入ThreadLocal中;每次退出,清空ThreadLocal变量。
5.WEB页面的权限检查
每次访问WEB页面时,检查是否有权限访问web页面
6.WEB页面的防表单重复提交、防篡改、放XSS攻击
每次访问WEB页面时,根据Token判断是否重复提交和被用户恶意篡改
7.单元测试的MOCK
单元测试中,一些依赖外围服务的地方,需要被mock掉,可以采用拦截器,统一生产具体的代理类,返回MOCK的值
8.***************
太多应用的地方了,只要是可以抽象出公共的地方,大部分都可以考虑采用拦截器的方式。
拦截器的原理:
1. java的Proxy和InvocationHandler,只能代理接口类
2. cglib,不仅可以代理接口类,还可以代理具体的实现类
分享到:
相关推荐
**Spring AOP应用Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要模块,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。这个Demo是针对Spring AOP的...
**Spring AOP 应用详解** Spring AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在程序运行时动态插入代码的能力,以实现跨切面的关注点,如日志、事务管理、权限控制...
Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许我们在不修改源代码的情况下,通过在程序运行时动态地将代码插入到现有代码中来实现关注点的分离。这种技术通常用于日志记录、性能监控、事务管理等...
主要内容包括Spring的发展历程、优势、核心结构、IoC高级应用、AOP应用、声明式事务支持等。 适合人群:Java开发工程师,尤其是对Spring框架有一定了解并希望深入研究其内部机制和技术实现的中级及以上水平的研发...
在本次“Spring及AOP应用(事务与集成)培训”中,我们将深入探讨Spring的核心特性,特别是面向切面编程(AOP)以及事务管理和集成方面的知识。 首先,Spring的核心概念是依赖注入(Dependency Injection,DI)。通过...
囊括了最实用的AOP应用。 XPage 一个非常方便的fragment页面框架。 XUpdate 一个轻量级、高可用性的Android版本更新框架。 XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装。 ...
在Vs2019中编写C# Unity AOP应用,首先我们需要了解几个关键概念: 1. **切面(Aspect)**:切面是AOP的核心,它封装了跨越多个对象的横切关注点。例如,日志记录就是一个典型的横切关注点,它可能需要在多个类的...
本资料"Java进阶之SpringAOP应用共16页.pdf"深入探讨了Spring AOP在实际开发中的应用和实现原理,旨在提升Java开发者的技能水平。 首先,理解AOP的基本概念至关重要。AOP是一种编程范式,它将关注点分离为不同的...
下面我们将详细探讨这个简易的Android AOP应用框架,以及如何利用它来提升开发效率。 首先,让我们理解什么是AOP。面向切面编程是将关注点分离的一种方法,将核心业务逻辑与横切关注点(如日志、事务管理等)解耦。...
通过上述步骤,你可以创建一个简单的Spring AOP应用,实现对特定方法的调用进行日志记录。当然,AOP的潜力远不止于此,你可以根据实际场景扩展通知类型,或者创建更复杂的切入点表达式,以实现更细粒度的控制。 在...
该框架采用Java和Kotlin语言编写,是一款轻量级的Android AOP应用解决方案,源码总共有139个文件,涵盖了51个Java源文件、28个XML配置文件、20个PNG图片文件、11个Gradle脚本文件以及其他类型的文件,旨在提供最实用...
本书以AOP基础理论为主线,首先讲解AOP的产生与发展、为什么要应用AOP、AOP的核心概念,然后详细讲解AspectWerkz、AspectJ、Spring框架的AOP应用开发技术。 随书附赠的光盘内容为本书开发的案例程序包。本书内容循序...
《开发者突击:精通AOP整合应用开发(AspectWerkz+Aspectl+Spring)》以AOP基础理论为主线,首先讲解AOP的产生与发展、为什么要应用AOP、AOP的核心概念,然后再详细讲解AspectWerkz、AspectJ、Spdng框架的AOP应用开发...
Spring框架是目前Java开发中使用最广泛的应用程序框架之一,...最后,通过应用这些AOP概念,开发者可以将横切逻辑从业务逻辑中分离出来,提高代码的模块化,简化代码维护,最终达到使应用程序更易于理解和维护的目的。
本书以AOP基础理论为主线,首先讲解AOP的产生与发展、为什么要应用AOP、AOP的核心概念,然后详细讲解AspectWerkz、AspectJ、Spring框架的AOP应用开发技术。 随书附赠的光盘内容为本书开发的案例程序包。本书内容循序...
XAOP一个轻量级的AOP(Android)应用框架,囊括了最实用的AOP应用。心动不如行动,还不赶紧点击,体验一下吧!关于我X系列库快速集成为了方便大家快速集成X系列框架库,我提供了一个空壳模版供大家参考使用: : 特色...
在本示例中,"springaop.zip" 包含了一个使用XML配置的Spring AOP应用实例,可以直接运行,配合相关的博客文章学习效果更佳。 在Spring AOP中,我们首先需要了解几个核心概念: 1. **切面(Aspect)**:切面是关注...
Autofac提供注册拦截器和定义切入点的方式,使得AOP应用更加灵活。 4. **Castle Dynamic Proxy**:这是一个开源库,可以在运行时动态创建具有额外行为的代理类。许多DI容器(如Autofac、Ninject)都使用它来实现AOP...
总的来说,这个AOP应用旨在提高代码的可读性和可维护性,通过将日志和性能监控的代码抽取到切面,使得业务代码更为简洁,专注于核心功能。在实际开发中,这样的设计对于系统监控和问题排查具有很大的帮助。