AOP 的概念|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习AOP 的概念

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术AOP 的概念学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15929


AOP 的概念

 

内容概述

一、前言概述

二、面向切面编程

 

一、前言概述

其实无论怎样设计都没有办法解决这样的一些偶合问题,比如在系统中间的校权限

和写日志问题。

这些功能像“沙子”一样被掺入了系统中间,因为系统的很多地方都需要调用它,所以没有办法把这些“沙子”从系统中挑出来,系统会和校权限和写日志紧紧联系在一起。如果想把系统的主要业务和校权限、写日志这些非常分散的小功能隔离开。用现有的程序设计的方法,无论是面向对象的方式还是面向过程的方式,都是没有办法把这些“沙子”挑理干净的。最后仍需要留下一个点,这个点就是调用权

限和调用日志的地方。

 

二、面向切面编程

1、基本介绍

面向切面编程也就是 AOP 编程这样的一种方式其实是解决这样问题的最有效的方式。

它能把这些沙子从整个系统中间剥离出来,使得系统中间只剩下主要的业务过程。这些“沙子”可以定义在一个独立的地方,然后用一个定义的方式把它在系统运行的时候或是在系统编译的时候在与系统偶合起来,这样的方式就彻底把琐碎的分散

的小功能和系统主要的功能完全分开了。这就是 AOP 技术或是 AOP 编程技术。

图片18.png

2、实现方式

(1)面向切面编程语言 AspecctJ

(2)基于框架的切面编程

AOP 编程技术有两种实现方式。第一是使用一种新的编程语言例如 AspectJ,还有一种方式是在现有的框架上去实现 AOP 的这些概念。不管是用新的编程语言还是在现有的编程框架上实现 AOP 的这些概念,其实都会用到 AOP 的术语。这些术语在编程中会经常遇到,所以首先要介绍这些术语的概念。

3、AOP 术语

图片19.png

(1)adcice

首先要介绍的是 advice,这就是交叉到主业务中的零散的事物,比如日志和权限。Advice 中包含了两项内容,第一是要做什么,第二是什么时候做。什么时候做指的是在点的之前或是之后做,或者前后都要做,或者是在点报错的时候做,这是指做

的时机。

(2)Join Point

第二个就是 Join Point,这其实就是“掺沙子”的点,所有在系统中间需要掺加的点就是 Join Point。

(3)Point Cut

Join Point 是非常多的,所以通常需要一种定义的方式定义这些点是什么点,称之为 Point Cut,叫做切点。它定义了一个或者多个 Join Point,就是加长连接点,多

个 Join Point。通常它是用一种定义条件的方式定义 Join Point。

(4)Aspect

第四个切面是Aspect,它其实包含了前面所说的三个概念。Advice 是做什么,什么时候做;Point Cut 就是所谓的切点,它的所有的交叉临界点在何处。这两个合起

来就构成了 Aspect。

它包含了所说的三个内容。第一是点在什么地方;第二是点的什么时间要做的事;第三是要做什么。其中后两个是在 advice 中定义的,第一个是在 Point Cut 中定义的。

(5)Target

第五个就是 Target,即需要“掺沙子”的对象。所以 AOP 的target 中间没有 “沙子”,只有主要的业务。把要掺加的内容交给 aspect 定义。

最后在运行或编译的时候再把这些 “沙子”掺到主体系统中。这是 AOP 的一些基本概念和术语。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
数据库
AOP(面向切面编程)的基本概念和原理
AOP(面向切面编程)的基本概念和原理
366 0
|
Java 测试技术 Spring
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成(二)
Spring入门&控制反转(或依赖注入)&AOP的关键概念& 多配置文件&与web集成
|
4月前
|
Java Maven 数据安全/隐私保护
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
67 1
|
2月前
|
监控 安全 数据库
面向方面编程(AOP)的概念
【8月更文挑战第22天】
51 0
|
4月前
|
XML Java 数据格式
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
39 0
|
4月前
|
设计模式 SQL Java
Spring框架第四章(AOP概念及相关术语)
Spring框架第四章(AOP概念及相关术语)
|
5月前
|
Java Spring
Spring中得Aop相关概念及运用
Spring中得Aop相关概念及运用
|
5月前
|
Java Spring
Javaweb之SpringBootWeb案例之AOP核心概念的详细解析
Javaweb之SpringBootWeb案例之AOP核心概念的详细解析
30 0
|
5月前
|
SQL 缓存 Java
【Spring】AOP底层原理(动态代理)-》 AOP概念及术语 -》 AOP实现
【Spring】AOP底层原理(动态代理)-》 AOP概念及术语 -》 AOP实现
91 0
|
5月前
|
XML Java 数据格式
Spring-AOP简介、核心概念、入门案例及工作流程
Spring-AOP简介、核心概念、入门案例及工作流程
108 0