_aop 简介| 学习笔记

简介: 快速学习 _aop 简介

开发者学堂课程【Java Web 开发系列课程:Spring 框架入门_aop 简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/538/detail/7343


_aop 简介

 

内容简介:

一、面向切面编程

二、aop  在 spring 中作用

三、aop 的好处

四、名词解释

 

一、面向切面编程 ——aop

aop: aspect oriented programming 面向切面编程

简介

面向切面编程 (AOP) 通过提供另外一种思考程序结构的途经来弥补面向对象编程 (OOP) 的不足。在 OOP 中模块化的关键单元是类(classes),而在 AOP 中模块化的单元则是切面。切面能对关注点进行模块化,例如横切多个类型和对象的事务管理 (在 AOP 术语中通常称作横切( crosscutting )关注点。)

AOP 框架是 Spring 的一个重要组成部分。但是 Spring IoC 容器并不依赖于 AOP ,这意味着你有权利选择是否使用 AOP , AOP做为 Spring IoC 容器的一个补充,使它成为一个强大的中间件解决方案。  AOP 在 SpringFramework 中的作用

提供声明式企业服务,特别是为了替代 EB 声明式服务。最重要的服务是声调性事务管理。

允许用户实现自定义切面,用 AOP 来完善 OOP 的使用。

如果你只打算使用通用的声明式服务或者封装好的声明式中间件服务,例如缓冲池 ( pooling ) ,那么你不必与 SpringAOP 直接打交道,并且本章的大部分内容可以跳过了。

Spring2.0 的 AOP

Spring2.0 允许用户选择使用更简单、更强大的基于模式或 @Aspect 注解的方式来自定义切面。这两种风格都支持所有类型的通知( advice )和 Aspect 的切入点语言,虽然实际上仍然使用 Spring AOP 进行织入 ( Weaving )。

本章主要讨论 Spring2.0 对基于模式和基于 @AspectJ的 AOP 支持。 Spring2.0 完全保留了对 Spring1.2 的向下兼容,下一章将讨论  Spring1.2API 所提供的底层的 AOP 支持。

AOP 概念

首先让我们从一些重要的 AOP 概念和术语开始。这些术语不是 Spring 特有的。不过 AOP 术语并不是特别的直观,如果 Spring 使用自己的术语,将会变得更加令人困惑。

切面( Aspect ):一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是  J2EE 应用中一个关于横切关注点的很好的例子。在 SpringAOP 中,切面可以使用基于模式)或者基于@Aspect 注解的方式来实现。

连接点( Joinpoint ):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在 SpringAOP 中,一个连接点总是表示一个方法的执行。

通知( Advice ):在切面的某个特定的连接点上执行的动作。其中包括了“around”、 “before” 和 “after” 等不同类型的通知(通知的类型将在后面部分进行讨论)。许多 AOP 框架(包括 Spring) 都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。

切入点( Pointcut ):匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。切入点表达式如何和连接点匹配是 AOP 的核心: Spring 缺省使用 AspectJ 切入点语法。

引入( Introduction ):用来给一个类型声明外的方法或属性(也被称为连接类型声明( inter-typedeclaration )) 。 Spring 允许引入新的接口(以及一个对应的实现)到任何被代理的对象。例如,你可以使用引入来使一个 bean 实现 IsModified 接口,以便简化缓存机制。

目标对象( Target Object ):被一个或者多个切面所通知的对象。也被称做被通知( advised )对象。既然 Spring AOP 是通过运行时代理实现的,这个对象永远是一个鼓代理( proxied )对象。

AOP 代理 ( AOP Proxy ): AOP 框架创建的对象,用来实现切面契约(例如通知方法执行等等)。在 Spring 中, AOP 代理可以是 JDK 动态代理或者 CGLIB 代理。

织入( Weaving ):把切面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时(例如使用 AspectJ编译器),类加载时和运行时完成。 Spring 和其他纯 JavaAOP 框架一样,在运行时完成织入。

 

二、aop  在 spring 中作用

提供声明式服务(声明式事务)。

允许用户实现自定义切面。

 

三、Aop 的好处

a)使得真实角色理的业劳更加纯粹,不再去关注一些公共的事情。

b)公共的业务由代理来完成-实现业务的分工)。

c)公共业务发生扩展时变得更加集中和方便。

四、名词解释

关注点:增加的某个业务。如日志,安全,缓存,事务等。

切面(Aspect):一个关注点的模块化。

通知(advice):在切面的某个特定的连转点上执行的动作。

相关文章
|
Java 数据库连接 应用服务中间件
Spring5源码(39)-Aop事物管理简介及编程式事物实现
Spring5源码(39)-Aop事物管理简介及编程式事物实现
115 0
|
前端开发 Java 数据库连接
Spring Aop简介
Spring Aop简介
105 0
|
Java Spring
Spring AOP 简介
Spring AOP 简介
|
XML Java 数据格式
Spring 的AOP 简介,面向切面编程AOP
Spring 的AOP 简介,面向切面编程AOP
168 0
08Spring - 面向切面编程(AOP)简介
08Spring - 面向切面编程(AOP)简介
282 0
08Spring - 面向切面编程(AOP)简介
|
XML Java 数据格式
Spring-AOP简介、核心概念、入门案例及工作流程
Spring-AOP简介、核心概念、入门案例及工作流程
305 0
|
Java
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
158 0
|
Java Spring
spring---aop简介
spring---aop简介
147 0
java202304java学习笔记第五十七天员工管理-Aop基础-切入点表达式-execution之2
java202304java学习笔记第五十七天员工管理-Aop基础-切入点表达式-execution之2
88 0
java202304java学习笔记第五十七天员工管理-Aop基础-切入点表达式-execution之2
java202304java学习笔记第五十八天员工管理-Aop基础-记录操作日志4
java202304java学习笔记第五十八天员工管理-Aop基础-记录操作日志4
101 0