JAVA AOP概念和实现原理 详解

article/2025/9/18 10:19:49

// AOP 概念
1. 什么是AOP?
// 面向切面(方面)编程
//利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率

    // 不通过修改源代码方式 添加新功能 叫AOP

AOP(底层原理)
// 1. AOP底层使用动态代理 来实现
// 2. 有两种情况动态代理

2.1 有接口情况 使用JDK动态代理
举例说明
// 1) 创建一个接口
// interface UserDao{
// public void login();
// }
// 2) 接口实现类
// class UserDaoImpl implements UserDao{
// @Override
// public void login() {
// 实现登录过程
// }
// }
// 3) 使用JDK动态代理
// 创建UserDao接口实现类代理对象
// 通过代理对象 增强类的功能实现

2.2 没有接口情况 使用CGLIB动态代理
// 举例说明
// 1) 创建一个类
// class User{
// public void add(){
// …
// }
// }
//2)现在需要增强add 方法
// 传统方法 再创建一个 User子类 然后在子类中增强
// class Person extends User{
// public void add(){
// super.add();
// //增强逻辑
// }
// }

**CGLIB动态代理 方法**// 创建当前类 子类的代理对象  他不是new出来的 是代理出来的

AOP (使用JDK动态代理)
// 使用JDK动态代理 , 使用Proxy类里面的方法创建代理对象
// 调用newProxyInstance 方法
// 方法 三个参数
// 1.类加载器
// 2. 增强方法所在的类, 这个类实现的接口,支持多个接口
// 3. 实现这个接口 InvocationHandler, 创建代理对象 , 写增强的方法

使用JDK动态代理 具体代码 实现

  1. 创建一个接口
    2.

  2. 实现这个接口里的方法
    在这里插入图片描述

3.使用Proxy类来创建接口代理对象
在这里插入图片描述
在这里插入图片描述

这是写的实现 原理 在spring 中 已经给封装好了 到时候 配置就好

   //  AOP操作(术语)//1. 连接点// 类里面的哪些方法可以被增强 这些方法就叫连接点//2. 切入点// 实际被真正增强的方法 称为切入点//3. 通知(增强)//3.1 实际增强的逻辑部分 成为通知//3.2 通知有多种类型// 前置通知  在方法之前 通知// 后置通知  在方法之后 通知// 环绕通知  前面后面都会 通知// 异常通知  当方法出现异常 通知// 最终通知  不管有没有异常 都会通知 像 finally 这个关键字//4. 切面// 是一个动作// 把通知应用到切入点的过程

http://chatgpt.dhexx.cn/article/Edh9gRA3.shtml

相关文章

Spring IOC和AOP 原理彻底搞懂

本博中关于Spring的文章:Spring IOC和AOP原理,Spring事务原理探究,Spring配置文件属性详解,Spring中的代理模式 Spring提供了很多轻量级应用开发实践的工具集合,这些工具集以接口、抽象类、或工具类的形式存在于Sprin…

spring AOP 原理

一、spring注册 AnnotationAwareAspectJAutoProxyCreator 通过EnableAspectJAutoProxy可以看到先把AspectJAutoProxyRegistrar通过Import注册到spring。 AspectJAutoProxyRegistrar实现了ImportBeanDefinitionRegistrar接口,所以就有了将某个bean引入spring 的能力…

Spring的AOP实现原理

本学习笔记将尽可能的将AOP的知识讲解的通俗易懂,先从一个典型的问题出发,引入AOP这个概念,介绍AOP的基本概念,再到Spring中的AOP的实现方案,最后进行一个简单的总结归纳。本学习笔记中不考虑cglib、也不会太关注Sprin…

spring的AOP和IOC的原理

目录 一、spring的ioc与aop原理 二、代理模式: 三、静态代理 四、动态代理 五、实际的操作 六、动态代理的实现: 七、什么是AOP 八、主流的AOP框架: 九、术语: 十、通知的五种类型: 十一、AOP的优点&#x…

spring aop原理

🍅 Java学习路线:搬砖工逆袭Java架构师 🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者✌ 、Java架构师奋斗者💪 🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步…

AOP原理

AOP原理 什么是AopAOP的作用AOP的基本概念AOP使用场景AOP原理如何动态修改功能AOP的编程思想AOP面向切面编程操作AOP通知执行的顺序代码执行流程准备工作源码揭开面纱 什么是Aop AOP(Aspect Orient Programming)也就是面向切面编程,作为面向对…

无法显示页面,因为发生内部服务器错误。

用iis添加网站后,访问域名,显示“无法显示页面,因为发生内部服务器错误。” 之前我将这些文件放在一个Demo文件夹中,把Demo放在test站点下,通过域名访问Demo报错。 我将Demo下的文件直接放在test下,访问成…

遇到“服务器内部错误http500怎么办?

出现500错误的原因是很多的,一般来说都是程序错误导致的,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误。 解决的方法就是您必须在http中能够正确的获得错误信息,方法为&#x…

500 - 内部服务器错误--解决方案

一般网上的方法是这样的: 一、打开 Internet 信息服务(IIS)管理器。点击出错的站点,并双击右边的ASP图标,如下图所示: 二、展开右侧配置中的“调试属性”,把“将错误发送到浏览器”的值设为 "true"&#xf…

HTTP状态 500 - 内部服务器错误 类型 异常报告,初学servlet遇到的问题

写给自己看,初学记录一下,maven项目中tomcat,Servlet遇到的问题 HTTP状态 500 - 内部服务器错误 类型 异常报告,初学servlet遇到的问题 类似这种报错,在hello world级别的servlet中碰到。 报错分析 大概是说自定义java类在实例…

IIS 配置网站出现500内部服务器错误,显示具体错误信息

1、打开IIS 找到如下图的部分,双击点开 2、点开之后找到如下图部分,点击 3、选择如下图部分,然后点击确定。 4、这个时候页面会出现详细的错误,如果没有出现详细错误,配置如下图部分,不勾选。 5、这时会出现…

Nextcloud 内部服务器错误解决

在部署nextcloud过程中最后登录页面时出现内部服务器错误,心态当时就炸了。 在网上找了各种方案,但是大部分博主都告诉我是/var/lib/php/session/属组的权限问题,或者web目录的权限不对。但是对我这个问题没有用。 我把他们的方案贴出来对你…

IDEA中HTTP500 - 内部服务器错误类型 在 [] 行处理 [/.jsp] 时发生异常情况;java.lang.NoSuchMethodError: com.Bean.Person.setId

问题: HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 在 [65] 行处理 [/pages/el 5/elDataDemo2.jsp] 时发生异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: 在 [65] 行处理 [/pages/el 5/elDa…

HTTP状态 500 - 内部服务器错误:No converter found for return value of type: class xxx(简单分析及解决)

问题描述 以下内容基于ssm框架,当我们向tomcat服务器发起请求时,出现如下的错误状态提示–500。 Tomcat日志信息: 原因分析: 未找到类型返回值的转换器:类 com.ssm.utils.Msg,使用jackson绑定数据时出现…

阿里云服务器出错500 - 内部服务器错误

阿里云服务器部署并发布成功后,访问该网页时出错,报 500 - 内部服务器错误。 原因:1.http 500内部服务器错误说明IIS服务器无法解析ASP代码,如果你联网还发现找不到服务器就是500错误了. 2.在安装Framework v4.0之后&#xff0c…

HTTP 500 - Internal Server Error 服务器内部错误

php出现如下错误 原因是出现了中文字符 修改后,页面成功访问

500错误及服务器内部错误

500错误及服务器请求错误 一、简言:500错误代表着你请求的后端或者说服务器端出现了错误。 可能的原因非常多,因为很多程序内部都会把代码运行出现的错误捕捉然后直接返回一个“服务器内部错误500”,这也就导致了我们在前端发送请求时见到的…

远程服务器返回错误: (500) 内部服务器错误解决办法

在.net中发送 xml post请求和接受xml 的post请求时,经常会遇到“远程服务器返回错误: (500) 内部服务器错误”。 这里有2种解决办法: 第一种方法:修改请求端Content-Type 为“text/xml”(httpclient.Headers.Add("Content-Type",…

服务器错误500-内部服务器错误。您查找的资源存在问题,因而无法显示。

当我们用iis环境搭建的网站出现了服务器错误500错误时我们该怎么处理呢,小编的网站织梦网站就出现了服务器错误 500 - 内部服务器错误。 您查找的资源存在问题,因而无法显示这个问题,如下图所示。织梦网站后台登陆前台预览都是正常的&#x…

什么是HTTP 500内部服务器错误,要怎么修复

HTTP 500是一种原始的错误代码,它指示网站服务器在处理请求时发生了内部错误,不过具体错误原因是不确定的。一般情况下,这种错误通常是由服务器程序上的bug或者配置问题造成的。当服务器收到请求时,尝试执行它时,但是发…