软件开发的目的,最终是为了解决各种需求,包括业务需求和系统需求。使用面向对象的方法,可以对业务需求等普通关注点进行很好的抽象和封装,并且使之模块化。
但是对于系统需求一类的关注点来说,情况却有所不同。
1. 对于业务的需求而言,需求与其具体实现之间的关系基本上是一对一的。可以在系统中的某一个确定的点找到针对这种需求的实现,无论从开发还是维护的角度,都比较方便。
一个关于贷款业务的系统功能模块划分示意图
2. 对于系统需求,比如:为了对系统进行监控,需要为所有这些业务需求的实现添加日志记录功能,或者业务方法的执行需要一定的权限限制。要将这些需求以面向对象的方式实现并集成到整个系统中去,可就不是一个需求对应一个实现那么简单了。系统中的每个业务对象都需要加入日志记录,加入相应的安全检查,那么这些需求的实现代码就会遍及所有的业务对象。
系统中普通的业务关注点,OOP可以很好地对其进行分解并使之模块化,但却无法更好地避免类似于系统需求的实现在系统中各处散落的问题。为了解决这个问题,于是AOP应运而生。
日志记录,安全检查,事务管理等系统需求就像一把刀横切在组织良好的各个业务功能模块之上
这些系统需求是系统中的横切关注点,使用传统方法,无法更好的以模块化的方式,对这些横切关注点进行组织和实现。
所以 AOP 引入了 Aspect 的概念,用来以模块化的形式对系统中的横切关注点进行封装。
Aspect 对于 AOP ,就相当于 Class 对于 OOP。 AOP 仅是对 OOP 方法的一种补足,当把以 Class 形式模块化的业务需求和以 Aspect 形式模块化的系统需求拼装到一起的时候,整个系统就算完成了。
- 大小: 49.5 KB
- 大小: 98 KB
分享到:
相关推荐
AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析...
springAOP核心源码流程分析,请基于5.0.6版本进行代码跟进。
spring aop框架源码级分析 结构图
Spring 框架之 AOP 原理剖析.html 抓下来打包成了HTML文件, 方便离线观看
有关于Spring,我们最常用的两个功能就是IOC和AOP,前几篇文章从源码级别介绍了Spring容器如何为我们生成bean及bean之间的依赖关系 下面我们接着来看AOP的源码实现。 有关于AOP,我们在面试中也被无数次问到...
springAOP核心源码流程分析,请基于5.0.6版本进行代码跟进。
Spring AOP(面向切面编程)作为Spring框架的一个重要部分,为Java开发者提供了一个...通过对Spring AOP源码的深入分析,我们可以更好地理解其内部工作原理,从而在实际开发中更加灵活和高效地使用这一强大的编程范式。
NULL 博文链接:https://ylxy3058.iteye.com/blog/2224244
Spring AOP 业务代码
本文深入分析了Spring AOP的实现机制,让读者能够更好地理解和应用这一强大的编程范式。 Spring AOP是基于代理模式实现的,主要包括动态代理、通知(Advice)、切点(Pointcut)、切面(Aspect)和连接点(Join ...
Spring源代码分析(三):Spring JDBC Spring源代码解析(四):Spring MVC Spring源代码解析(五):Spring AOP获取Proxy Spring源代码解析(六):Spring声明式事务处理 Spring源代码解析(七):Spring AOP中对拦截器...
Java进阶之SpringAOP源码深度剖析共17页.pdf.zip
面试必考之HashMap源码分析与实现 探索JVM底层奥秘ClassLoader源码分析与案例讲解 面试必备技能之Dubbo企业实战 ...互联网系统垂直架构之Session解决方案 分库分表之后分布式下如何...无处不在的Spring AOP事务及踩过的坑
SpringAOP入门和原理分析,动态代理
元注解方式结合AOP,灵活记录操作日志 能够记录详细错误日志为运维提供支持 日志记录尽可能减少性能影响
Spring AOP源码深度剖析开源架构源码2021.pdf
AOP是Spring提供的关键特性之一。 AOP即面向切面编程,是OOP编程(面向对象编程)的有效补充。
Java流行框架源码分析:Spring源码、SpringBoot源码、SpringAOP源码、SpringSecurity源码、SpringSecurity OAuth2源码、JDK源码、Netty源码
aop分析笔记 个人总结所得 org.springframework.aop.framework.autoproxy
主要介绍了Spring AOP中使用args表达式的方法,结合实例形式分析了spring面向切面AOP中使用args表达式具体步骤、相关实现技巧与操作注意事项,需要的朋友可以参考下