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

【Spring】反射动态修改Bean实例的私有属性值

Cannot cast 'org.springframework.http.client.InterceptingClientHttpRequestFactory' to 'org.springframework.http.client.OkHttp3ClientHttpRequestFactory'

由于RestTemplate在自定义初始化时顺序比较早,想在启动后跟进yum或者注解配置修改初始化的值时,直接修改是不能转换成功的,如下:

RestTemplate restTemplate = GlobalContext.getApplicationContext().getBean(RestTemplate.class);
OkHttp3ClientHttpRequestFactory requestFactory = (OkHttp3ClientHttpRequestFactory)  restTemplate.getRequestFactory();
requestFactory.setReadTimeout(event.getRpcTimeOut());

这样直接改是会报错:Cannot cast 'org.springframework.http.client.InterceptingClientHttpRequestFactory' to 'org.springframework.http.client.OkHttp3ClientHttpRequestFactory'

解决方案:通过反射设置可访问,可写

ReflectionUtils.makeAccessible

将字段设置可访问,可写。本质就是调用field.setAccessible(true),让非public修饰的字段,可以操作如protected、private修饰的字段。

	public static void makeAccessible(Field field) {if ((!Modifier.isPublic(field.getModifiers()) ||!Modifier.isPublic(field.getDeclaringClass().getModifiers()) ||Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) {field.setAccessible(true);}}

实例代码:

try {
                    Field field = InterceptingClientHttpRequestFactory.class.getSuperclass().getDeclaredField("requestFactory");
                    ReflectionUtils.makeAccessible(field);
                    OkHttp3ClientHttpRequestFactory okHttp3ClientHttpRequestFactory = (OkHttp3ClientHttpRequestFactory) field.get(factory);
                    okHttp3ClientHttpRequestFactory.setReadTimeout(event.getRpcTimeOut());
                    okHttp3ClientHttpRequestFactory.setWriteTimeout(event.getRpcTimeOut());

} catch (Exception e) {
     System.out.println("ReflectionUtils.makeAccessible error:" + e.getMessage());
}

相关文章:

【Spring】反射动态修改Bean实例的私有属性值

Cannot cast org.springframework.http.client.InterceptingClientHttpRequestFactory to org.springframework.http.client.OkHttp3ClientHttpRequestFactory 由于RestTemplate在自定义初始化时顺序比较早,想在启动后跟进yum或者注解配置修改初始化的值时&#xff…...

MySQL DDL 数据定义

文章目录 1.创建数据库2.删除数据库3.查看所有数据库4.查看当前数据库5.选择数据库6.创建数据表7.查看 MySQL 支持的存储引擎和默认的存储引擎8.删除数据表9.查看数据库的数据表10.查看表结构11.查看建表语句12.重命名数据表13.增加、删除和修改字段自增长14.增加、删除和修改数…...

Ventoy 设置VTOY_MAX_SEARCH_LEVEL = 0只扫描U盘根目录 不扫码子目录

在镜像分区/media/yeqiang/Ventoy创建目录ventory,目录内创建文件ventoy.json,内容如下 {"control":[{ "VTOY_MAX_SEARCH_LEVEL": "0" }] }采用系统默认的utf-8编码。 参考: search path . Ventoy Plugin.e…...

vue3父子同信的双向数据实现

前言&#xff1a; 我们知道的是&#xff0c;父传子的通信&#xff0c;和子传父的通信&#xff0c;那如何实现父子相互通信的呢&#xff1f; (vue3中)v-model 和modelValue结合使用,在vue2中使用的是.sync 在父组件的写法 <template> <Son v-model"num" /&…...

Shiro是什么?为什么要用Shiro?

前言 本文小新为大家带来 Shiro入门概述 相关知识&#xff0c;具体内容包括Shiro是什么&#xff0c;为什么要用 Shiro&#xff0c;Shiro与Spring Security 的对比&#xff0c;Shiro的基本功能&#xff08;包括&#xff1a;基本功能框架&#xff0c;功能简介&#xff09;&#x…...

Vue3+Vite+Pinia+Naive后台管理系统搭建之九:layout 动态路由布局

前言 如果对 vue3 的语法不熟悉的&#xff0c;可以移步Vue3.0 基础入门&#xff0c;快速入门。 1. 系统页面结构 由 menu&#xff0c;面包屑&#xff0c;用户信息&#xff0c;页面标签&#xff0c;页面内容构建 ​ 2. 创建页面 创建 src/pages/layout.vue 布局页 创建 sr…...

从零开始学Python(Ⅰ)基本变量与数据类型

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Python的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.关于Python的基本知识&#xff08;变量…...

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序&#xff1a; from–>where–>group by -->having — >select --> order 第一步&#xff1a;from语句&#xff0c;选择要操作的表。 第二步&#xff1a;where语句&#xff0c;在from后的表中设置筛选条件&#xff0c;筛选出符合条件的记录。 …...

Mac M2 Ventura(13.3) 新机 安装Cocoapods

1.执行命令&#xff1a; sudo gem install cocoapods 因为是新机&#xff0c;内置的ruby版本是&#xff08;2.6.0&#xff09;太低&#xff0c;会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew&#xff0c;可以先卸载&#xff1a; 卸载&#xff1a; /b…...

Unity 引擎做残影效果——2、屏幕后处理方式

Unity实现残影效果 大家好&#xff0c;我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影&#xff0c;这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法&#xff0c;是真的生成了很多个网格模型在场景里面。如果用后处理做…...

考研算法38天:反序输出 【字符串的翻转】

题目 题目收获 很简单的一道题&#xff0c;但是还是有收获的&#xff0c;我发现我连scanf的字符串输入都忘记咋用了。。。。。我一开始写的 #include <iostream> #include <cstring> using namespace std;void deserve(string &str){int n str.size();int…...

“深入解析JVM:探秘Java虚拟机的工作原理“

标题&#xff1a;深入解析JVM&#xff1a;探秘Java虚拟机的工作原理 摘要&#xff1a;本文将深入探讨Java虚拟机&#xff08;JVM&#xff09;的工作原理&#xff0c;包括类加载、内存管理、垃圾回收、即时编译等关键概念。通过详细解析JVM的各个组成部分&#xff0c;读者将能够…...

[Flask]SSTI1

根据题目提示&#xff0c;这关应该是基于Python flask的模版注入&#xff0c;进入靶场环境后就是一段字符串&#xff0c;而且没有任何提示&#xff0c;有点难受&#xff0c;主要是没有提示注入点 随机尝试一下咯&#xff0c;首先尝试一下guest&#xff0c;GET传参 但是没有反应…...

Object Map 的相互转换

学生业务对象定义&#xff1a;Student Student student new Student(); student.setId(1L); student.setName("令狐冲") student.setAge(10) 第一种&#xff1a;通过Alibaba Fastjson实现 pom.xml 文件依赖 <dependency><groupId>com.alibaba</g…...

VS+Qt环境下解决中文乱码问题

目录 原因解决方案总结 原因 使用VSQt出现中文乱码的情况一般都是给控件添加中文文本时出现&#xff0c;而控件需要的字符串类型是QString&#xff0c;默认是utf-8。在 Visual Studio 中&#xff0c;源代码文件的默认执行字符集可能是 Windows 默认的 ANSI 字符集&#xff0c;…...

互联网摸鱼日报(2023-08-08)

互联网摸鱼日报(2023-08-08) 36氪新闻 宝洁、欧莱雅、联合利华加大广告预算投入&#xff1a;越萧条&#xff0c;要越营销&#xff1f; 把智能手机的“高端货”装进汽车&#xff0c;厂商的脑洞越来越大了 王一博《热烈》票房破7亿&#xff0c;街舞是一门怎样的生意&#xff1…...

NTT DATA利用相干伊辛机模拟基因组组装和疾病治疗的潜力

​ &#xff08;图片来源&#xff1a;网络&#xff09; 7月20日&#xff0c;日本领先的IT服务提供商和行业咨询公司NTT DATA宣布完成了一个使用量子计算优化基因组组装过程的项目。这是量子计算应用于医疗保健和生命科学行业中的一个里程碑。 本项目通过比较量子和非量子计算方…...

哈希表语法(转载自用)

哈希表 哈希表是一种很常见的数据结构,我现在平时刷算法题一般使用C++刷(不要问我为什么,懂的都懂)。C++关于哈希表有很多数据结构,平时使用的比较多的有unordered_set 跟 unordered_map。其中unordered_map 存储的是键值对。 其实我们在某些情况下可以使用数组构建哈希表…...

打破界限,图文档与物料清单完美互联

在现代企业的产品开发过程中&#xff0c;图文档和物料清单是不可或缺的重要信息。然而&#xff0c;由于数据来源多样、格式繁杂&#xff0c;图文档与物料清单之间的信息传递往往存在障碍。而PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;的…...

【电机绘图】:插补算法(一)—直线插补—逐点比较法

今日介绍学习一种使用电机作画、绘图、加工零件时需要使用的算法 &#xff1a; 插补算法 本文提供直线插补的概念基础&#xff0c;基本思路分析&#xff0c;C语言实现等&#xff0c;代码会直接贴出&#xff01; 插补算法是指在数值计算或数据处理中&#xff0c;根据已有的数据…...

氛围驱动开发:数据化提升开发者效率与团队协作的实践指南

1. 项目概述&#xff1a;当开发节奏遇上“氛围感”最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“vibe-driven-dev”。光看名字&#xff0c;你可能会有点摸不着头脑——“氛围驱动开发”&#xff1f;这听起来不像是一个传统的技术框架或工具库。没错&#xff0c;它确实…...

桌面CNC木质游戏手柄外壳制作:从Fusion 360设计到实战加工全流程

1. 项目概述&#xff1a;从数字模型到木质手柄的旅程如果你和我一样&#xff0c;既痴迷于复古游戏的怀旧情怀&#xff0c;又享受亲手将数字设计变为实体物件的成就感&#xff0c;那么这个项目绝对能点燃你的热情。我们这次要做的&#xff0c;不是一个简单的3D打印外壳&#xff…...

量子纠错程序的形式化验证方法与工程实践

1. 量子纠错程序验证的核心挑战量子纠错&#xff08;Quantum Error Correction, QEC&#xff09;是量子计算实现实用化的关键技术屏障。与传统经典计算不同&#xff0c;量子系统面临着更为复杂的噪声环境&#xff1a;退相干、门操作误差、测量错误等量子特异性噪声会迅速破坏脆…...

基于五年一线体验,青岛二胎家庭收纳系统的真相

一、行业痛点分析在收纳领域&#xff0c;二胎家庭面临着诸多核心技术挑战。数据表明&#xff0c;超过70%的二胎家庭在装修时未充分考虑未来的收纳需求&#xff0c;导致入住后空间拥挤、物品杂乱无章。青岛三木空间设计在五年的一线服务中发现&#xff0c;很多二胎家庭存在以下问…...

Figma设计稿自动化生成Markdown文档:从API调用到CI/CD集成

1. 项目概述&#xff1a;从设计稿到结构化文档的自动化桥梁如果你是一名前端开发者、产品经理或是UI设计师&#xff0c;一定经历过这样的场景&#xff1a;Figma里精心打磨的设计稿终于定稿&#xff0c;接下来需要将其转化为开发文档、产品需求文档或者设计规范文档。这个过程&a…...

嘎嘎降AI和PaperRR深度对比:2026年学术期刊SCI论文降AI性能完整评测报告

嘎嘎降AI和PaperRR深度对比&#xff1a;2026年学术期刊SCI论文降AI性能完整评测报告 总有人问我选哪个降AI工具&#xff0c;这篇文章把主流的几款对比清楚。 综合推荐嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元&#xff0c;99.26%达标率。不同需求…...

Harness 中的请求标识染色:端到端追踪

1. 标题选项(核心关键词:Harness、请求标识染色、端到端追踪、可观测性、CI/CD) 「Harness 可观测性实战:请求标识染色实现全链路端到端追踪」 「从0到1搞定Harness请求染色:让微服务调用链路+变更链路无所遁形」 「告别排查黑洞:Harness请求标识染色的端到端追踪落地指南…...

【Midjourney Ash印相终极指南】:20年影像算法专家首度公开胶片质感生成的7大隐性参数配置

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney Ash印相的技术起源与影像哲学本质 Ash印相的算法基因溯源 Ash印相并非凭空诞生的视觉滤镜&#xff0c;而是Midjourney v6模型在latent空间中对“胶片衰变—银盐氧化—时间蚀刻”三重物理过…...

量子计算优化Benders分解:减少量子比特与提升收敛效率

1. 量子辅助Benders分解框架概述混合整数线性规划(MILP)在供应链管理、金融优化和资源调度等领域有着广泛应用。传统Benders分解算法通过将原问题拆分为处理整数变量的主问题(MP)和处理连续变量的子问题(SP)进行迭代求解。然而&#xff0c;随着问题规模扩大&#xff0c;主问题的…...

Filecoin挖矿硬件怎么选?用Lotus-bench实测RTX 2080 Ti到GTX 1060的密封性能

Filecoin挖矿硬件实战指南&#xff1a;从GPU选型到Lotus-bench深度优化 在Filecoin挖矿生态中&#xff0c;GPU性能直接决定了密封效率和区块奖励获取能力。面对市场上从高端RTX 2080 Ti到入门级GTX 1060的各类显卡&#xff0c;矿工往往陷入选择困境——官方推荐列表中的参数是否…...