当前位置: 首页 > news >正文

Spring-静态代理VS动态代理/实现代理ProxyFactory

文章目录

    • 静态代理VS动态代理
    • Spring实现代理
      • ProxyFactory
    • 工作中遇到问题整理
      • 动态代理异常com.sun.proxy.$Proxy0 cannot be cast to

静态代理VS动态代理

静态代理VS动态代理
参考URL: https://blog.csdn.net/qq_25881443/article/details/103245938
【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理
参考URL: https://blog.csdn.net/jiuqiyuliang/article/details/38423811

代理:不用改变源码而增强方法
动态代理有AOP的思想,面向切面编程,基于方法的切面

  1. 静态代理:
    资源类接口UserManager

    实现类UserManagerImp 增删查改方法

    代理类UserManagerImpProxy 增强方法 -> 增删查改的前后通知
    代码冗余,需要为每个类都写一个代理类对象

  2. 动态代理
    只写一个代理类,通过反射机制实现动态代理
    需要java.lang.reflect.InvocationHandler接口和 java.lang.reflect.Proxy 类的支持

Spring实现代理

JDK、CGLIB、Spring 三种实现代理的区别(三)Spring的ProxyFactory
参考URL: https://blog.csdn.net/sunnycoco05/article/details/78901449
为了让大家理解Spring Aop利器ProxyFactory,我已经拼了
参考URL: https://baijiahao.baidu.com/s?id=1659872326546139979&wfr=spider&for=pc

Spring中代理对象可通过xml配置方式获得,也可通过ProxyFactory手动编程方式创建对象。我们主要讲手动编程的方式。Spring中的代理对象其实是JDK Proxy和CGLIB Proxy 的结合。

ProxyFactory

ProxyFactory就springAOP创建代理的工厂

ProxyFactory,全称:org.springframework.aop.framework.ProxyFactory,spring帝国spring aop军工厂boss,职责就是生产proxy,即,代理工厂。

工作中遇到问题整理

动态代理异常com.sun.proxy.$Proxy0 cannot be cast to

动态代理异常com.sun.proxy.$Proxy0 cannot be cast to
参考 https://blog.csdn.net/Tritoy/article/details/81019956

意思大致是说com.sun.proxy.$Proxy0不能进行强制转换…

jdk动态代理的过程中,生成动态代理对象与目标对象要是同一个接口:也就是说在使用动态代理时,用来生成代理的委托对象必须是一个接口。

改错后:

public class Dog implements DogI{public void say() {System.out.println("miaomiaomiao");}
public static void main(String[] args) {DogI dog = (DogI)new DogJDKPROXY().getProxyObject(new Dog());dog.say();}

Dog是继承了DogI接口的。

相关文章:

Spring-静态代理VS动态代理/实现代理ProxyFactory

文章目录 静态代理VS动态代理Spring实现代理ProxyFactory 工作中遇到问题整理动态代理异常com.sun.proxy.$Proxy0 cannot be cast to 静态代理VS动态代理 静态代理VS动态代理 参考URL: https://blog.csdn.net/qq_25881443/article/details/103245938 【java项目实战】代理模式…...

单片机精进之路-9ds18b20温度传感器

ds18b20复位时序图,先将b20的数据引脚拉低至少480us,然后再将数据引脚拉高15-60us,再去将测传感器的数据引脚是不是变低电平并保持60-240us,如果是,则说明检测到温度传感器,并正常工作。需要在240us后才能检…...

支部管理系统微信小程序(管理端+用户端)flask+vue+mysql+微信小程序

系统架构如图所示 高校D支部管理系统 由web端和微信小程序端组成,由web端负责管理,能够收缴费用、发布信息、发布问卷、发布通知等功能 部分功能页面如图所示 微信小程序端 包含所有源码和远程部署,可作为毕设课设...

4、Linux-常用命令(二)

目录 一、搜索命令 1、命令搜索命令 2、文件搜索命令find。格式:find [搜索范围] [搜索条件]。 3、字符串搜索命令grep 二、帮助命令 1、man【详细的帮助】 2、--help【简要的帮助】 三、压缩与解压命令 1、.zip格式 2、.gz格式 3、打包 四、关机和重启命…...

golang实现openssl自签名双向认证

第一步:生成CA、服务端、客户端证书 1. 生成CA根证书 生成CA证书私钥 openssl genrsa -out ca.key 4096创建ca.conf 文件 [ req ] default_bits 4096 distinguished_name req_distinguished_name[ req_distinguished_name ] countryName …...

【学习】torchvision.datasets.ImageFolder()

在分类任务中,数据集文件存储往往是如下形式: - train- class1- image1.jpg- image2.jpg...- class2- image1.jpg- image2.jpg......此时,我们想要获取图片和标签,标签即为文件名(class1、class2…) 可以使…...

pyinstaller打包的exe运行报错 No module named path

描述 用python开发了一个opc client应用,调试没有问题后,使用pyinstaller打包成exe,测试exe运行也没有问题,正常使用。 在某次重装win10系统后,在此运行exe就开始报错了,详细内容如下: ------…...

Vue3中Vuex状态管理库学习笔记

1.什么是状态管理 在开发中,我们会的应用程序需要处理各种各样的数据,这些数据需要保存在我们应用程序的某个位置,对于这些数据的管理我们就称之为状态管理。 在之前我们如何管理自己的状态呢? 在Vue开发中,我们使用…...

React富文本编辑器开发(二)

我们接着上一节的示例内容,现在有如下需求,我们希望当我们按下某个按键时编辑器有所反应。这就需要我们对编辑器添加事件功能onKeyDown, 我们给 Editor添加事件: SDocor.jsx import { useState } from react; import { createEditor } from…...

nginx代理minio客户端

错误方式 在点击桶名查看文件时, 会一直处于loading加载中 worker_processes 1; #设置 Nginx 启动的工作进程数为 1。events {worker_connections 1024; ##设置每个工作进程的最大并发连接数为 1024。 }http {include mime.types; #该文件定义了文件扩展名和 MIME 类型…...

将ppt里的视频导出来

将ppt的后缀从pptx改为zip 找到【media】里面有存放图片和音频以及视频,看文件名后缀可以找到,mp4的即为视频,直接复制粘贴到桌面即可。 关闭压缩软件把ppt后缀改回,不影响ppt正常使用。...

Spring Boot 3核心技术与最佳实践

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 highlight: a11y-dark 引言 Spring Boot作为…...

redis缓存更新策略

更新缓存策略: 对于低一致性需求的业务:使用redis自带的内存淘汰机制就行了,自动失效,等查询时再更新。 对于高一致性需求的业务:推荐主动更新,由缓存的调用者更新数据库的同时更新缓存(删除缓存)。 这里的…...

【操作系统学习笔记】文件管理1.4

【操作系统学习笔记】文件管理1.4 参考书籍: 王道考研 视频地址: Bilibili 文件的物理结构 文件快、磁盘块 在内存管理中,进程的逻辑空间被分为一个一个页面。同样的,在外存管理中,为了方便对文件数据的管理,文件的逻辑地址空…...

快递包装展|2024上海国际电商物流包装产业展览会

2024中国(上海)国际电商物流包装产业展览会 2024 China (Shanghai) international e-commerce logistics packaging industry exhibition 时 间:2024年7月24日 —7月26日 地 点:国家会展中心(上海市青浦区崧泽大道333号&#xff…...

vue页面刷新问题:返回之前打开的页面,走了create方法(解决)

vue页面刷新问题:返回之前打开的页面,走了create方法(解决) 直接上图, 我们在开发的时候经常会复制粘贴,导致vue文件的name没有及时修改 我们需要保证name和浏览器的地址一致,这样才能实现缓…...

IJCAI23 - Continual Learning Tutorial

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本篇 Tutorial 主要介绍了 CL 中的一些基本概念以及一些过往的方法。 Problem Definition Continual Learning 和 Increm…...

【YOLO v5 v7 v8 v9小目标改进】HTA:自注意力 + 通道注意力 + 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度

HTA:自注意力 通道注意力 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度 提出背景框架浅层特征提取深层特征提取图像重建混合注意力块(HAB)重叠交叉注意力块(OCAB)同任务预训练效果 小目标涨点YOLO…...

外包干了10天,技术退步明显。。。。。

先说一下自己的情况,本科生,2019年我通过校招踏入了南京一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…...

如何在Win系统本地部署Jupyter Notbook交互笔记并结合内网穿透实现公网远程使用

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中,使用最多的无疑就是各种函数、图表、…...

基于Vercel AI SDK与Next.js 14构建智能编程助手:从架构到部署实战

1. 项目概述:一个面向开发者的AI编程助手脚手架最近在GitHub上看到一个挺有意思的项目,叫vercel-labs/coding-agent-template。光看名字,你大概能猜到,这是一个跟AI编程助手相关的模板项目。没错,它本质上是一个预先配…...

AI应用开发框架nuwax:从快速构建到生产部署全解析

1. 项目概述:一个AI驱动的开源应用框架 最近在开源社区里,我注意到一个名为 nuwax-ai/nuwax 的项目开始受到一些关注。乍一看这个标题,它像是一个GitHub仓库的地址,由 nuwax-ai 这个组织或用户创建,项目名称为 nu…...

【SI_DP】深入理解DP协议AUX通道信号

1. DP AUX通道概述 1.1. DP协议AUX信号概述 DisplayPort(DP)协议中的AUX差分信号是一条独立的双向传输辅助通道,采用交流耦合差分传输方式。 该通道为半双工传输,单一方向速率约为1Mbit/s,主要用于传输设定与控制指…...

Verilog函数封装:提升代码复用与维护性的组合逻辑设计实践

1. 项目概述:为什么要在Verilog中“封装”行为逻辑?写Verilog代码,尤其是行为级描述,最怕的就是看到一段几乎一模一样的组合逻辑或者运算过程,在模块的不同角落里反复出现。比如,一个模块里可能需要三次把输…...

从集合运算到代码实战:一文搞懂Python中Jaccard相似度的5种计算姿势(附性能对比)

从集合运算到代码实战:一文搞懂Python中Jaccard相似度的5种计算姿势(附性能对比) 在数据科学和机器学习领域,集合相似度计算是一个基础但至关重要的任务。想象一下这样的场景:你需要比较数百万用户的兴趣标签&#xff…...

告别依赖地狱:在Ubuntu 22.04 LTS上一步到位搞定ns-3.39所有可选库(保姆级命令清单)

告别依赖地狱:在Ubuntu 22.04 LTS上一步到位搞定ns-3.39所有可选库(保姆级命令清单) 当你第一次尝试运行ns-3的MPI分布式仿真时,是否遇到过mpi.h not found的报错?或是想在NetAnim中可视化网络拓扑,却因为…...

论文降 AI 软件红黑榜!这 3 类是套壳 ChatGPT 改完 AI 率反涨 30% 别用

论文降 AI 软件红黑榜!这 3 类是套壳 ChatGPT 改完 AI 率反涨 30% 别用 每年毕业季都有同学跑来问我——「学姐我花了 200 块买的降 AI 工具,降完之后送知网检测 AI 率反而涨了 30 个点,怎么回事?」这不是段子,是 202…...

基因组数据压缩技术SAGe:原理、优化与应用

1. 基因组数据压缩技术概述基因组测序技术的快速发展使得单个全基因组测序成本已降至数百美元级别,但随之而来的数据存储与传输压力却呈指数级增长。以Illumina NovaSeq 6000测序仪为例,单次运行可产生高达6TB的原始数据,这对医疗机构的存储基…...

Dell R730 2U服务器实战:解锁Nvidia P4计算卡在虚拟化环境下的AI训练潜能

1. 硬件准备与安装避坑指南 Dell PowerEdge R730作为一款经典的2U机架式服务器,在二手市场上性价比极高。我最近给实验室淘了两台二手R730,准备搭建AI训练集群。这次重点分享如何在这台服务器上安装Nvidia Tesla P4计算卡的经验。 先说说为什么选P4这张卡…...

PerimeterX PX3/PX2 按压验证码逆向:从初始化到WASM关键校验的完整流程剖析

1. PerimeterX按压验证码技术背景解析 第一次遇到PerimeterX的PX3/PX2按压验证码时,我正帮朋友调试一个电商爬虫。那会儿鼠标按下去死活过不了验证,控制台里全是看不懂的加密参数。这种验证码和传统图形验证码完全不同,它更像一个完整的安全防…...