建设公司的网站,烟台网站建设团队,宜昌本地网站,wordpress怎么做的一、什么是AOP 
面向方面的编程#xff08;AOP#xff09;是一种编程技术#xff0c;是面向对象编程的补充#xff0c;它也提供了模块化。 
在面向对象编程中#xff0c;关键的单元是对象#xff0c;AOP的关键单元是切面#xff0c;或者说关注点。一些切面可能有集中的代…一、什么是AOP 
面向方面的编程AOP是一种编程技术是面向对象编程的补充它也提供了模块化。 
在面向对象编程中关键的单元是对象AOP的关键单元是切面或者说关注点。一些切面可能有集中的代码但是有些可能被分散或者混杂在一起它允许程序员模块化横切关注点或行为这些问题或行为跨越典型的责任分工例如日志记录和事务管理。 二、关注点和横切关注点 
1关注点 
应用的模块中实现的行为。关注点可以被定义为我们想实现以解决特定业务问题的方法。 2横切关注点 
贯穿整个应用程序的关注点。像日志、安全和数据转换它们在应用的每一个模块都是必须的所以他们是一种横切关注点。 三、AOP 术语 
1、连接点Joinpoint 连接点描述的是程序执行的某个特定位置 
2、切入点Pointcut 切入点是一个连接点的过滤条件AOP 通过切点定位到特定的连接点 
3、通知Advice、增强或横切关注点 切面在某个具体的连接点采取的行为或行动称为通知。 
切面的核心逻辑代码都写在通知中有人也称之为增强或者横切关注点。 
通知是切面功能的具体实现通常是业务代码以外的需求如日志、验证等这些被模块化的特殊对象 
4、通知器Advisor 通知器由一个切入点pointcut和一个通知Advice组成。通知就是增强的那部分功能代码如记录日志代码、控制权限代码 
5. 切面Aspect 与通知器advisor类似都是通知切入点。区别在于切面中的类无需实现通知接口但需要在配置文件中指定类中的方法名 
而通知器仅需指定类名即可因为通知器中的类都实现了通知接口很明确的知道通知方法是哪个。 
6、目标(Target) 被通知的对象方法 
7、代理(Proxy) 向目标对象应用通知之后创建的对象 
8、引介(Introduction) 
引介是一种特殊的增强它为类添加一些属性和方法。 
即使一个业务类原本没有实现某个接口通过AOP的引介功能我们可以动态地为该业务类添加接口的实现逻辑让业务类成为这个接口的实现类 
9、织入(weaving) 织入是将切面与外部的应用类型或者类连接起来以创建通知对象(adviced object)的过程。 
三种织入的方式 a、编译期织入这要求使用特殊的Java编译器。 b、类装载期织入这要求使用特殊的类装载器。 c、动态代理织入在运行期为目标类添加增强生成子类的方式。 Spring采用动态代理织入而AspectJ采用编译期织入和类加载期织入。 AspectJ编译时织入、后编译时织入(post-compile-time weaving)、类加载时织入(load-time weaving, LTW)   
四、AOP可用的实现 
基于Java的主要AOP实现有 
AspectJ Spring AOP JBoss AOP 五、AOP的通知类型 
通知(advice)是在程序中想要应用在其他模块中的横切关注点的实现。 
Advice主要有以下5种类型 
1、前置通知(Before Advice)Before 
2、返回之后通知(After Retuning Advice)AfterReturning 
3、抛出异常后执行通知(After Throwing Advice)AfterThrowing  
4、后置通知(After Advice)无论连接点是通过什么方式退出After  
5、围绕通知(Around Advice) Around  六、AOP 代理 
代理是使用非常广泛的设计模式。Spring AOP是基于代理实现的 AOP 代理是一个由 AOP 框架创建的用于在运行时实现切面协议的对象 Spring AOP默认为 AOP 代理使用标准的 JDK 动态代理 Spring AOP 也可以使用 CGLIB 代理