第十七章 AOP编程

1.AOP概念

AOP(Aspect Oriented Programing)   面向切面编程 = Spring动态代理开发
以切面为基本单位的程序开发,通过切面间的相互协同,相互调用,完成程序的构建
切面 = 切入点 + 额外功能

OOP(Object Oriented Programing)   面向对象编程
以对象为基本单位的程序开发,通过对象间的彼此协同,相互调用,完成程序的构建

POP(Producer Oriented Programing) 面向过程(方法\函数)编程
以过程为基本单位的程序开发,通过过程间的彼此协同,相互调用,完成程序的构建
AOP概念:
    本质就是Spring的动态代理开发,通过代理类为原始类增加额外功能
    好处: 利于原始类的维护

注意: AOP是在OOP的基础上进行开发的,AOP不能取代OOP

2.AOP编程的开发步骤

1. 原始对象
2. 额外功能(实现MethodInterceptor接口)
3. 切入点
4. 组装切面

3.切面的名词解释

切面 = 切入点 + 额外功能

几何学
    面 = 点 + 相同性质

第十七章 AOP编程

Original: https://www.cnblogs.com/suwuji/p/16511911.html
Author: 苏无及
Title: 第十七章 AOP编程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • css height属性中的calc方法

    例如父盒子是100%的高度 盒子里面的head部分固定位140px 内容部分始终为剩余的全部高度 height: calc(100% – 140px); “…

    数据库 2023年6月16日
    0134
  • HyperLogLog

    HyperLogLog 基数计数,不绝对准确。省空间,速度快 估计基数,对数级空间节省 可以理解为一种压缩,把基数压缩成二进制位数,只存储位数,如果旧有的数据再加入时肯定不会改变位…

    数据库 2023年6月9日
    075
  • Liunx(CentOS)安装Nacos(单机启动,绑定Mysql)

    Liunx安装Nacos(单机启动,绑定Mysql) 一,准备安装包 github下载点 二,在/usr/local/目录下创建一个文件夹用于上传和解压Nacos cd /usr/…

    数据库 2023年6月11日
    072
  • MySQL启动过程详解三:Innodb存储引擎的启动

    Innodb启动过程如下: 初始化innobase_hton,它是一个handlerton类型的指针,以便在server层能够调用存储引擎的接口。 Innodb相关参数的检车和初始…

    数据库 2023年6月9日
    094
  • [spring]spring管理的入门项目快速搭建

    1.spring简介 Spring框架是一个开源的应用程序框架,是针对bean的生命周期进行管理的轻量级容器。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了…

    数据库 2023年6月16日
    0106
  • Java异步执行器CompletableFuture源码解析

    CompletableFuture是对 Future的一种强有力的扩展, Future只能通过轮询 isDone()方法或者调用 get()阻塞等待获取一个异步任务的结果,才能继续…

    数据库 2023年6月11日
    090
  • MySQL实战45讲 4,5

    04 | 深入浅出索引(上) 索引的出现实际上是为了提高数据查询的效率,就像一本书的目录一样。 [En] The emergence of the index is actuall…

    数据库 2023年5月24日
    0101
  • 博客园美化-随季节变化实现不同的飘落效果

    最近在研究博客园的美化效果,看到有一个樱花飘落的效果,忽然突发奇想,如果能根据当前日期所处的季节实现不同的飘落效果岂不是更酷。😂 最近在研究博客园的美化效果,看到有一个樱花飘落的效…

    数据库 2023年6月6日
    0109
  • 【StoneDB研发日志】列式存储 delete方案调研

    MySQL删除数据的方式 以MySQL 5.7为例,数据库删除数据的方式一共有以下三种: delete truncate drop 三种方式都可以删除数据,但使用场景有所不同。 […

    数据库 2023年5月24日
    097
  • 如何使用Java代码修改数组大小呢?

    数组是Java开发中非常重要的一个数据存储容器, 那可以存储多种类型,基础类型,引用类型,但是它有一个缺点,就是一旦创建后,就不可以修改数组的大小, 那么我们如何动态的扩容数组的大…

    数据库 2023年6月11日
    0103
  • django框架使用mysql步骤

    在创建好django项目的基础上来讲解使用orm框架 注意:首先在mysql中手动或者通过命令创建一个数据库,我先创建一个名为orm的数据库。 1:在项目文件夹中的settings…

    数据库 2023年6月6日
    0157
  • Java学习-第一部分-第二阶段-第六节:泛型

    泛型 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 泛型的理解和好处 看一个需求 请编写程序,在ArrayLi…

    数据库 2023年6月11日
    096
  • MySQL数据库 DDL 阻塞问题定位 【转载】

    陈臣,甲骨文MySQL首席解决方案工程师,公众号《MySQL实战》作者,有大规模的MySQL,Redis,MongoDB,ES的管理和维护经验,擅长MySQL数据库的性能优化及日常…

    数据库 2023年6月16日
    085
  • 2022-9-2 cookie 和 session

    当客户端关闭后,服务器不关闭,两次获取session是否为同一个?默认情况下。不是。 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cooki…

    数据库 2023年6月14日
    0100
  • 程序设计之设计模式介绍

    一、什么是设计模式? 答:程序都是通过写代码来实现的,老前辈们在开发程序的过程中,为了解决某一类问题,日积月累总结出了一套套的代码编写经验,通过这些经验,按照套路出牌,可以让开发出…

    数据库 2023年6月14日
    090
  • [SWPU2019] Android2

    有一个超长的线程延迟和永远为假的判断条件,应该就是要修改这两点。 使用apktool反编译apk之后,直接打开MainActivity.smali文件,找到 1000000000的…

    数据库 2023年6月11日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球