java代理的一个小坑

BurpSuite实战:从零开始抓取手机HTTPS数据包的完整指南 本文提供了一份使用BurpSuite抓取手机HTTPS数据包的完整实战指南。详细介绍了从环境准备、代理配置到安装CA证书的核心步骤,并分享了抓包验证、疑难排查及应对证书绑定等进阶技巧,帮助开发者和安全测试人员高效进行移动应用调试与安全分析。 阅读详情

java代理的一个小坑

工作中一个业务逻辑需要用到java的代理,java代理需要实现InvocationHandler接口,并覆写invoke方法:

public class TestInvocationHandler : implements InvocationHandler {
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		...
	}
}

这都是通用写法,不再赘述。但是在运行过程中碰到一个报错:

Class com.xxx.handler.TestInvocationHandler can not access a member of class com.xxx.biz.TestAPI with modifiers "public abstract"

搜索也没找到解决办法,最后在startoverflow找到一个规避办法,在invoke方法中增加

	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		method.setAccessible(true);
		...
	}

问题还真解决了!不过这个答案也启发了我继续探索这个问题的原因。
在代码中TestInvocationHandler在handler package下,而业务接口定义在biz package下,而我发现定义接口时,接口的访问域没填,是java语言默认值。

interface TestAPI {
}

设置interface的访问域为public,不需要method.setAccessible(true);,问题同样也解决了!

public interface TestAPI {
}

但为什么呢?继续查找资料,参考深入java(类)接口默认修饰符问题,在interface没指定修饰符的情况下默认是frendly,包内的任何类都可以访问它,而包外的任何类都不能访问它(包括包外继承了此类的子类)。


所以handler包里TestInvocationHandler不能访问biz包里的TestAPI就不奇怪了。奇怪的是编译过程没有报错。
再深入去想,java的代理机制就是在运行时才决定接口的具体实现,不是在编译过程中确定的。整个过程也就不奇怪了。

Java微服务新生代之Nacos 前言 从 2017 年底 Java 开发领域使用最广的 RPC 框架 Dubbo 开启重新更新维护之路开始,阿里巴巴为打造 Dubbo 微服务生态持续开源了 Sentinel,Nacos,Seata 等微服务中间件框架,并且推出了 Spring Cloud Alibaba 来提供微服务开发的一站式解决方案,阿里巴巴在 Java 社区持续活跃起来,也为 Java 微服务开发注入了新的活力。 本篇文章将重点学习微服务组件 Nacos 作为注册中心的功能和用法,Nacos 是阿里巴巴于 2018 年 7 月份新开 阅读详情

相关推荐

Claude Code vs Codex实战对比:哪个更适合你的Next.js项目?(含真实案例)

本文通过两个真实的Next.js项目案例,深度对比了Claude Code与Codex在UI实现和业务逻辑构建中的表现。Claude Code在代码质量、设计还原度和架构完整性方面优势明显,适合对可维护性要求高的生产级项目;而Codex则以快速响应和低成本见长,更适合原型开发或内部工具。文章提供了基于项目类型、团队能力和成本效益的详细选择策略。

weixin_29201859的博客 810

【BurpSuite实战排障】从端口占用到证书信任,一站式解决代理配置与安全警告

本文详细解析了BurpSuite代理配置中的常见问题,包括端口占用、安全警告和证书管理。通过三步解决监听端口问题,优化Firefox代理设置,并深入探讨证书导出与导入的正确方法,帮助用户高效完成渗透测试配置。

weixin_30522095的博客 255

AI驱动视频剪辑自动化:cutcli命令行工具重塑工作流

视频剪辑自动化是提升内容生产效率的关键技术,其核心原理在于通过程序化指令替代手动操作,将创意执行过程代码化。这项技术的价值在于能够将创作者从重复性劳动中解放,实现批量化、标准化的视频内容生产,尤其适用于社交媒体运营、产品宣传等高频产出场景。通过封装专业软件(如剪映/CapCut)的底层草稿格式,自动化工具在保证工业级渲染质量的同时,提供了可编辑的中间态,为AI智能体(Agent)与生产工具的结合提供了清晰接口。本文以cutcli为例,深入探讨了如何通过命令行工具和AI助手,构建从自然语言指令到可编辑视频草稿

weixin_27210125的博客 1065

WiFi信道状态信息 基于Intel 5300的CSI Tool 安装及使用(一)

经过半个月的坎坷安装过程,连Windows系统都没装过的本人终于颤颤巍巍把CSI TOOL装好了,下面记录一下适于我所使用设备的安装过程。设备:一台THINKPAD X201,一台师兄借的华硕主板的台式机首先,如果你和我一样对linux其实一窍不通的话,建议先反复看教程里的安装代码,照猫画虎很难一步实现的,中途一定会有这或那的问题需要解决,所以该了解的基础linux指令还是要了解,起码安装过程中的那些指令可以去查一查。.........

Silver_777的博客 2万+

模型检测--工具KeYmaera

论文:KeYmaera: A Hybrid Theorem Prover for Hybrid Systems 作者:Andre Platzer and JanKeYmaera摘要1 介绍2用于混合系统的KeYmaera验证工具3混合系统,混合自动机和混合程序 摘要 KeYmaera是一种用于混合系统的混合验证工具,它结合了演绎,实数代数和计算机代数证明者技术。它是自然的自动和交互式定理证明器 混合系统的规范和验证逻辑。 KeYmaera支持差分动态逻辑,它是用于混合程序的实值一阶动态逻辑,是混合自动机的程

ziigea的博客 1077

java Object类的公共方法

1、HashCode(); 2、 wait(); 3、 notify();  4、equals(); 5、getClass();   6、toString();   7、clone();   8、finalize(); 转载于:https://www.cnblogs.com/UalBlog/p/10542996.html...

diaozeqi6995的博客 148

【华为OD机考】2025C+B+2024E+D卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】

可上练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 1万+

maven项目中java.lang.AbstractMethodError报错解决

在将项目导入maven的过程中,发生了以下报错: 很明显,报错中已经明确指出,说没有进使用nitFilter方法 那么我们就打开该java文件,重写init方法,以防后续报错,我们这里可以将destory方法一并写上 就可以两个空方法就行 @WebFilter("/*") public class CheckLoginFilter implements Filter { @Overri...

qq_36760873的博客 2908

使用MATLAB和Simulink来设计并仿真一个智能家居火灾报警系统

智能家居火灾报警系统旨在通过烟雾传感器、温度传感器等设备监测家庭环境,一旦检测到异常情况(如烟雾或温度骤升),立即触发警报并采取相应措施。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个智能家居火灾报警系统,包括数据采集、处理以及响应机制。

amy_mhd的博客 163

YOLOv8 更换损失函数DIoU、EIoU、GIoU...Inner-IoU...

介绍了一些损失函数,并将其应用到yolov8训练中

分享一些自己改进代码的实例 888

使用JDK的javaagent机制时候,遇到的蛋疼无比的ClassNotFoundException

Premain-Class: net.aty.size.GetSizeAgent 类的全路径后面多了个空格,导致加载代理类的时候报了ClassNotFoundException

aty 7292

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

动态代理源码解析

动态代理的分析初版

m0_54010212的博客 313

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring自定义注解失效的小坑和解决方案

业务需求写了个自定义注解,作用域加在方法上的,使用方法如下: class Test { @自定义注解 public void methodA(){ ...... } } 写完了切面service和各种环绕方法后,测试了一下,生效了,于是提交,告诉队友们可以用起来,结果有一位伙计说注解不生效了,过去看,确实是加在方法上,不过是下面这样调用的: class Test { public void methodA(){ this.methodB(); } @自定义注解 public voi

whiteBearClimb的博客 5846

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

关于被代理的bean的注入的问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34357436的博客 236

公司电脑用VSCode开发Java项目的HTTP证书问题

公司电脑用VSCode开发Java项目的HTTP证书问题

就是老菜鸟 500

静态代理设计模式封装区块链签名jar包

问题开始:    在区块链钱包的开发中发现交易方法需要先签名才能进行交易(eth_sendTransaction)否则就需要对账户进行解锁.需要开发一个签名提供方法.通过查找资料发现有比较好的JS签名实现方法,但没有很好的java实现,所以想模仿其思路实现一个java版的.开始设计:该方法的类图    通过此图可以清晰的看出采用了静态代理的设计模式,新建类Web3jSignerProvider来重...

ALID 391

clob mybatis_mybatis 解决Druid设置Oracle的Clob字段时的小坑详解

http://blog.youkuaiyun.com/renfufei/article/details/44887371mybatis 插入读取clob类型,之前使用类型转换器的方式,但是不好使,不能读取,javaType = "java.lang.String" typeHandler ="examples.service.OracleClobTypeHandler"/>package exampl...

weixin_39938746的博客 930

java反向代理开源_Java微服务新生代之Nacos

前言从 2017 年底 Java 开发领域使用最广的 RPC 框架 Dubbo 开启重新更新维护之路开始,阿里巴巴为打造 Dubbo 微服务生态持续开源了 Sentinel,Nacos,Seata 等微服务中间件框架,并且推出了 Spring Cloud Alibaba 来提供微服务开发的一站式解决方案,阿里巴巴在 Java 社区持续活跃起来,也为 Java 微服务开发注入了新的活力。本...

weixin_39529443的博客 319

获得网站的静态资源 如css js 图片等的一些小坑

  通过某些方式拿到了源代码,是f12 审查元素的那种源代码。通过url请求也好,selenium 啥的也好。总之拿到了源代码。   我个人偏好用java来处理,用的jsoup解析工具。   css:有两种存放方式 上图可知一种直接获得href就可以下载。 另外一种路径不全,需要加上网站地址才可以访问     js 也有两种,上面这种需要加上网站地址     某些...

妖君你好的博客 2451

全球顶级java开发面试宝典

超细java开发面试题整合,妈妈再也不用担心我到处找面试题看了!

qq_51178489的博客 3270

新手学Android 1: 新入门遇到的一些小坑

开发环境早就装好了,一直没有动手去做。今天在这里做个记录,也算是对自己的一个督促。 开发环境: win7系统,官网下载的adt-bundle-windows,里面包含了eclipse和android SDK,没有用Android Studio 主要考虑目前大多数人用的还是eclipse,遇到问题比较好解决。 1,使用SDKManeger安装api各版本相当的慢。 实际上可以下载或者拷贝对应...

weixin_33800593的博客 134

适合初学者入门的Java基础视频

学习一门新技能,最先做到的是在入门的时候,培养出兴趣,这样才能支撑下一步的学习。这里略小坑整理了两套最适合初学者入门的Java基础教程,两位讲师分别是刘意(江湖绰号风清扬)老师和毕向东(无数人的java启蒙老师)老师。如果你是零基础,如果你想学习Java编程,如果你想成为IT从业人员,这两套教程,绝对不容错过。视频概括:第一阶段:       计算机基本原理,Java语言发展简史,Java开发环境...

略坑的博客 1370

若依(ruoyi)框架 -@DataScope(deptAlias = “d“) 报错 ArrayIndexOutOfBoundsException

若依(ruoyi)框架 -@DataScope(deptAlias = “d”) 报错 ArrayIndexOutOfBoundsException 报错信息如下: java.lang.ArrayIndexOutOfBoundsException: 0 at com.pcb.eoms.framework.aspectj.DataScopeAspect.dataScopeFilter(DataScopeAspect.java:124) at com.pcb.eoms.framework.aspectj.D

qq_39126658的博客 1073
上一篇: 常用的keytool命令
下一篇: 使用redis碰到maxmemory
CommanderZero
博客等级 码龄9年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值