广州网站优化工具服务静态网站注入

news/2025/10/7 0:56:32/文章来源:
广州网站优化工具服务,静态网站注入,j永久网站,wordpress二开前端动态代理jdk的Proxy与Spring的CGlib 文章目录 动态代理jdk的Proxy与Spring的CGlib1. 为什么要使用动态代理#xff1f;2. JDK Proxy 动态代理面向接口的动态代理3. CGlib动态代理4. 两个动态代理的区别 1. 为什么要使用动态代理#xff1f; 动态代理#xff1a;在不改变原有…动态代理jdk的Proxy与Spring的CGlib 文章目录 动态代理jdk的Proxy与Spring的CGlib1. 为什么要使用动态代理2. JDK Proxy 动态代理面向接口的动态代理3. CGlib动态代理4. 两个动态代理的区别 1. 为什么要使用动态代理 动态代理在不改变原有代码的情况下上进行对象功能增强 使用代理对象代替原来的对象完成功能 进而达到拓展功能的目的 2. JDK Proxy 动态代理面向接口的动态代理 特点: 一定要有接口和实现类的存在 代理对象增强的是实现类 在实现接口的方法重写的方法生成的代理对象只能转换成 接口的不能转换成 被代理类代理对象只能增强接口中定义的方法 实现类中其他和接口无关的方法是无法增强的代理对象只能读取到接口中方法上的注释 不能读取到实现类方法上的注解 使用方法: public class Test01 {public static void main(String[] args) {Person personnew Student(xjz_2002);// 通过Porxy动态代理获得一个代理对象,在代理对象中,对某个方法进行增强 // ClassLoader loader,被代理的对象的类加载器ClassLoader classLoader dinner.getClass().getClassLoader(); // Class?[] interfaces,被代理对象所实现的所有接口Class[] interaces dinner.getClass().getInterfaces(); // InvocationHandler h,执行处理器对象,专门用于定义增强的规则InvocationHandler handler new InvocationHandler(){// invoke 当我们让代理对象调用任何方法时,都会触发invoke方法的执行public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Object proxy, 代理对象 // Method method,被代理的方法 // Object[] args,被代理方法运行时的实参Object resnull;if(method.getName().equals(eat)){System.out.println(饭前洗手);// 让原有的eat的方法去运行res method.invoke(dinner, args);System.out.println(饭后刷碗);}else{// 如果是其他方法,那么正常执行就可以了res method.invoke(dinner, args);}return res;}};Dinner dinnerProxy (Dinner) Proxy.newProxyInstance(classLoader,interaces,handler);//dinnerProxy.eat(馒头);dinnerProxy.drink();} } interface Person{void eat(String foodName);void drink(); } class Student implements Person{private String name;public Student(String name) {this.name name;}Overridepublic void eat(String foodName) {System.out.println(name正在宿舍吃foodName);}Overridepublic void drink( ) {System.out.println(name正在喝可乐);} } class Teacher implements Person{private String name;public Teacher(String name) {this.name name;}Overridepublic void eat(String foodName) {System.out.println(name正在食堂吃foodName);}Overridepublic void drink( ) {System.out.println(name正在喝茶);} }3. CGlib动态代理 cglib动态代理模式是面向父类 特点 面向父类的和接口没有直接关系 不仅可以增强接口中定义的方法还可以增强其他方法可以读取父类中方法上的所有注解 使用实例 public class Test02 {Testpublic void testCglib(){Person person new Person();// 获取一个Person的代理对象// 1 获得一个Enhancer对象Enhancer enhancernew Enhancer();// 2 设置父类字节码enhancer.setSuperclass(person.getClass());// 3 获取MethodIntercepter对象 用于定义增强规则MethodInterceptor methodInterceptornew MethodInterceptor() {Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {/*Object o, 生成之后的代理对象 personProxyMethod method, 父类中原本要执行的方法 Person eat()Object[] objects, 方法在调用时传入的实参数组MethodProxy methodProxy 子类中重写父类的方法 personProxy eat()*/Object res null;if(method.getName().equals(eat)){// 如果是eat方法 则增强并运行System.out.println(饭前洗手);resmethodProxy.invokeSuper(o,objects);System.out.println(饭后刷碗);}else{// 如果是其他方法 不增强运行resmethodProxy.invokeSuper(o,objects); // 子类对象方法在执行,默认会调用父类对应被重写的方法}return res;}};// 4 设置methodInterceptorenhancer.setCallback(methodInterceptor);// 5 获得代理对象Person personProxy (Person)enhancer.create();// 6 使用代理对象完成功能personProxy.eat(馒头);} } class Person {public Person( ) {}public void eat(String foodName) {System.out.println(xjz_2002正在吃foodName);} } 4. 两个动态代理的区别 JDK动态代理是面向接口的只能增强实现类中接口中存在的方法。CGlib是面向父类的可以增强父类的所有方法JDK得到的对象是JDK代理对象实例而CGlib得到的对象是被代理对象的子类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高三闲话 #2

“那你们现在坐在这,一定是失败了。”小食堂外面有一只猫,每天吃饭都可以看到它趴在那里,被投喂一些食物。不过我在它眼中看不到任何“乞食”的色彩,更像是在等待被“进贡”。我们每天吃完饭回去都要欣赏那只猫,G…

D. Inversion Value of a Permutation edu div2

题意:给出一个排列,其逆序值为:包含至少一个逆序对的子区间数量 给出n和k,要求构造一个长度为n的,逆序值为k的排列 很显然,如果一个排列内,若是有两个位置逆序,那么以这两个位置为起点,找到的所有子区间可能会…

Mineserver

Mineserverhttps://github.com/CoolManBob/mineserver 项目简介(根据 README)名称:Mineserver用途:一个 Minecraft Alpha(早期版 Minecraft) 的 自定义服务器软件,用 C++ 编写,支持 Windows 和 Linux 平台。Gi…

首钢建设二公司网站博客网站开发背景及作用

之前的表单验证都是用js写的,这里也可以使用tp框架的验证。但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降。  自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创…

个人博客公告

由于github部署的网站维护稍微有点繁琐(有点懒了更新了) 原来的域名gannia.top 已经到期了暂时还没有续费的打算(指香港云服务器不清楚怎么推掉域名,想要更换阿里云域名的) 目前暂时还是用着原来的域名 https://t…

一个刚大一的普通大学生

title: 一个刚大一的普通大学生 tags: [] categories:生活 author: Tokepson date: 2025-05-01 00:32:00关于我 一名正在山东上大学的普通大学生(虽然说是在上海成长的。。。) 在多次了解到个人网站领域的信息后,出…

通过利用百度对于外链的检测算法上的缺陷

友情链接欺骗,通过利用百度对于外链的检测算法上的缺陷,可以实现自己的网站所有对外的链接,被判定为“不是站长真正的去推荐”的外链,让百度自动过滤掉这类链接的计算分值。 第四种:快速排名,目前快速排名技术有…

用django做网站网站seo关键词排名推广

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

网站建设 我们是专业的网页制作的模块命名规范

描述 从日志中读取数据时,有一条数据不符合规范,导致logstash读取数据插入时出错,而插件又无限尝试插入,导致堵塞。 解决方案 找到logstash文件夹目录,例如是:/data/logstash-7.3.2 cd /data/logstash-…

网站开发报告参考文献wordpress 没有样式表

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Discord

DiscordDiscord 本质上是一个 免费语音、视频、文字社群软件,最早是为游戏玩家设计的,后来扩展成面向各种社区。 主要特点:语音/视频/文字聊天:实时语音频道、群聊、私聊。服务器(Server)+频道(Channel) 组织形…

网络上做假网站做物流安卓app开发环境

对拉索回归进行调参主要涉及确定最佳的正则化参数 λ。正则化参数 λ 控制着模型对系数的收缩程度,影响着模型的复杂度。选择合适的 λ 值既可以防止过拟合,也可以保证模型有足够的预测能力。 以下是进行拉索回归调参的一般步骤: 准备数据&a…

wordpress网站有支付功能吗公司网站是用什么软件做

[css] 你有用过弹性布局吗?说说你对它的理解 按我的经验在样式规律上大致分下类吧,等宽弹性布局单元素弹性布局多元素定比弹性布局等隙布局用 flex 或 grid 能非常轻松的完成以上效果,而 css2 时代多半还需要更多元素嵌套才能完成了。所谓弹…

git常用助记

基础 添加配置 git config [--local | --global | --system] user.name Your name git config [--local | --global | --system] user.email Your emaillocal 仓库级 2. global 用户级 3. system 系统级查看配置 git …

网站营销成功的案例分析加速游戏流畅的软件

dataloader中通常使用num_workers来指定多线程来进行数据的读取。可以使用共享内存进行加速。 代码地址:https://github.com/POSTECH-CVLab/point-transformer/blob/master/util/s3dis.py 文章目录 1. 共享内存和dataloader结合1.1 在init中把所有的data存储到共享内…

网站代码开发方式网站关键字多少个

目录 数组的定义和使用: 数组的初始化: 遍历数组: 数组是引用类型 初始JVM的内存分布 再读引用变量 认识null 数组的应用场景 作为函数的参数 作为函数的返回值 数组练习 数组转字符串 排序 冒泡排序 数组逆序 数组求平均…

云岚到家项目文字稿

各位面试官好,特别荣幸能跟您详细聊我参与的云岚到家项目 —— 这是个家政服务 O2O 平台,核心是把个人服务人员和家政公司的资源整合起来,用户通过线上预约就能享受上门服务。项目分四个端:用户端小程序、服务端 A…

做网站需要具备什么德阳做网站公司

General Purpose Input Output 通用输入输出口(俗称IO口) 1.可配置为8种输入输出模式 模式名称性质特征浮空输入 数字输入 可读取引脚电平,若引脚悬空,则电平不确定上拉输入数字输入可读取引脚电平,内部连接上拉电阻,悬空时默认…

软件工程 第一次作业

第一次软件工程作业 随笔这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546/这…

制作网站后台汕头e京网

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 #include <iostream> #include <vector> #include <string>using namespace std;string longestCommonPrefix(vector<string>& strs) {if (…