如今的java程序世界,其他语言就不说了,面向对象是绝对的霸主地位,各种各样的复杂对象被创造出来,他们之间本身就有千丝万缕的关联,而一些源源不断的对这些对象本身的业务需求无关的需求被累加上来,会导致这些对象本身和其他对象之间的关联代码变得难以理解和分析,这时候Aop为我们提供了一种全新的视角去解决这些问题,原来我们可以在字节码层面去解决这些问题,使用动态代理的方式让java代码自己帮我们把一些无关紧要的业务需求抽离出来,这样我们既可以写纯净简单的对象代码,也可以更好的保障我们代码的安全性。
以上是我关于aop的理解,下面的是官方文档的介绍,再重温下:
aop为oop提供了另一种思考编程框架的方式,另外,oop的模块是对象,而aop的模块是面。
aop是Spring的一个关键部份,但是并不是必须的,因此可以使用aop也可以不使用,但是aop的确可以让spring的容器变得更强。
spring提供了两种使用aop的方式,即编程式aop和注解式aop,他们都是等效的。
。。
原文:https://www.cnblogs.com/YsirSun/p/15221212.html