`
琼海溜
  • 浏览: 18748 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论

保存Java代理框架生成的类文件。

    博客分类:
  • Java
阅读更多

Java的代理框架经常接触,但实际中我们看不到运行时生成的代理类,使用的代理框架是默认不会保存,如果想要查看,需要显式打开开关,可以通过以下2段代码做到。

1、Java动态代理。让下面代码在代理类执行前执行,然后刷新项目,在其根目录下可以看到形如"$Proxy0.class" 文件,再使用反编译工具解析即可。

/**
* 设置保存Java动态代理生成的类文件。
*
* @throws Exception
*/
public static void saveGeneratedJdkProxyFiles() throws Exception {
     Field field = System.class.getDeclaredField("props");
    field.setAccessible(true);
    Properties props = (Properties) field.get(null);
    props.put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
}

 

2、Cglib代理。让下面代码在代理类执行前执行,然后刷新项目,在指定目录dir下可以看到形如 "类名$$EnhancerByCGLIB$$数字.class" 文件,再使用反编译工具解析即可。

/**
* 设置保存Cglib代理生成的类文件。
*
* @throws Exception
*/
public static void saveGeneratedCGlibProxyFiles() throws Exception {
    Field field = System.class.getDeclaredField("props");
    field.setAccessible(true);
     Properties props = (Properties) field.get(null);
    System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, dir);//dir为保存文件路径
    props.put("net.sf.cglib.core.DebuggingClassWriter.traceEnabled", "true");
}

分享到:
评论

相关推荐

    soap服务器配制和WSDL文件的生成,生成WSDL文件的bat命令的编写,加soap相关的包

    在这个例子中,axis.jar、wsdl4j.jar和activation.jar是运行命令所需的库文件,YourService.java是你的服务接口类,输出的WSDL文件会被保存在/output/folder路径下。 第六步:添加依赖库 为了执行上述命令,你需要...

    wsdl2java生成工具

    WSDL2Java工具是Apache CXF框架的一部分,它允许开发者从一个WSDL文件自动生成Java客户端和服务端的源代码,极大地简化了Web服务的开发过程。 **一、WSDL2Java工具的作用** 1. **客户端代码生成**:当您有一个WSDL...

    Java框架面试题总结

    ### Java框架面试题总结 #### Struts篇 **1. Struts的工作流程** Struts框架是一种基于MVC(Model-View-Controller)架构模式的Java Web应用框架。它的工作流程如下: - **客户端发起请求**:客户端通过浏览器或...

    Java EE常用框架.xmind

    热加载代表的是:我们不需要重启服务器,就能够类检测得到,重新生成类的字节码文件 无论是热部署或者是热加载、都是基于Java类加载器来完成的。 SpringBoot实现热部署 1、在plugin标签中加入插件 ...

    10 - ASM使用ClassWrite生成类 - 简书1

    ASM是一个强大的Java字节码操控和分析框架,它可以直接生成和修改Java类的字节码。在提供的代码示例中,我们看到如何使用ASM库来动态生成一个名为`HelloWorld`的类。以下是对该过程的详细解释: 1. **创建Class...

    wsdl2java工具

    `wsdl2java`是Apache CXF框架提供的一款命令行工具,它能够根据WSDL文件自动生成Java客户端和服务端代码,大大简化了Web服务的开发流程。这个工具支持两种方式来获取WSDL:文件路径和URL。 ### 使用WSDL2Java工具 ...

    java 网盘_文件上传下载 struts2

    在Java Web开发中,Struts2是一个非常流行的MVC(模型-视图-控制器)框架,用于构建基于Java EE的Web应用程序。本项目利用Struts2实现了一个网盘功能,涵盖了文件的上传与下载,同时包含了权限管理和简单的后台管理...

    Java框架面试题

    Java框架面试题主要涵盖了许多核心概念,特别是在Spring和Hibernate这两个流行的Java框架中。以下是对这些知识点的详细解释: 1. **线程安全**:在Java中,Action对象是否线程安全取决于具体框架。Struts1中的...

    java的SSH框架

    ### Java的SSH框架知识点详解 #### Struts 1.x 原理与实践 **Struts 1.x** 是一个基于MVC设计模式的Java Web应用程序框架,它为开发者提供了构建可扩展、易于维护的Web应用程序的基础。Struts 1.x 的核心组件包括*...

    一个可扩展的Java web爬虫框架.zip

    Java Web爬虫框架是用于自动化地抓取网页信息的程序框架。这个名为"一个可扩展的Java web爬虫框架"的项目,显然旨在提供一种高效且灵活的方式来构建自定义的网络爬虫。让我们深入探讨一下这个框架的核心概念、功能...

    自整理Java关于基础和框架的面试题

    - **java.util**: 提供集合框架、日期/时间设施、事件模型、杂项实用程序类(如哈希映射)、工厂、以及并发机制。 - **java.io**: 包含输入/输出类。 - **java.sql**: 用于连接和操作数据库。 ##### Get和Post的...

    wsdl反向生成工具

    1. **axis.cmd**:这可能是Apache Axis命令行工具,Axis是Java平台上一个流行的Web服务框架,它提供了从WSDL生成客户端代理类的能力。`axis.cmd`可能是用于执行Axis命令的批处理文件,使得用户能够在命令行环境中...

    spring boot+java +jsoup+ 爬虫

    为了将这些图片保存到本地,Spring Boot可以提供文件系统存储或云存储的支持。例如,可以创建一个简单的REST API接口,接收图片的字节流,然后将其写入硬盘的指定目录,或者通过FTP、S3等服务上传到云端。同时,可以...

    Java反射机制在数据持久层轻量级ORM框架中的应用研究.zip

    4. **接口实现动态代理**:ORM框架如Hibernate使用CGLIB或JDK动态代理技术,根据接口生成实现类的代理对象,实现事务管理、缓存控制等功能。这些代理对象在执行实际方法时,会利用反射进行额外的处理,如开启事务、...

    java框架面试题

    ### Java框架面试题详解 #### 一、对象关系映射(ORM)技术 **1. 什么是ORM?** 对象关系映射(Object-Relational Mapping,简称ORM)是一种编程技术,用于解决面向对象编程语言与关系型数据库之间的不兼容性问题。...

    Java面试题答案2023

    Java 中的动态代理是通过反射机制实现的,它可以在运行时动态地生成代理类,并将代理类的方法调用转发给被代理的对象。 二十二、Lambda 表达式 Java 中的 Lambda 表达式是一种简洁的函数式编程语法,它可以用来...

    java js图片上传回显

    可以使用Java的`File`和`Files`类来操作文件系统,或者使用第三方库如Apache Commons IO。 3. **返回响应给前端** - **URL生成**:将保存后的文件路径转化为可供前端访问的URL。如果是本地文件系统,可能需要配置...

Global site tag (gtag.js) - Google Analytics