• 记录一个代理类分析工具saveGeneratedFiles


    作用: 这个字段用于控制是否输出JDK动态代理自动生成的代理类文件

    原因:

    如果这个字段的值为true,就生成相关文件并输出到指定目录下,ProxyGenerator源码如下:

     使用方法: 

    在启动参数VM中添加属性: sun.misc.ProxyGenerator.saveGeneratedFiles=true

    当调用方法时,就会把相关使用到的代理类的文件输出的相应目录

    好处:

      通过查看这些自动生成的类文件,可以分析JDK动态代理的执行原理,方便理解.

    ----------------------以下是补充的第二种方法------------------------------

    以上方法可以输出所有想看或不想看的自动生成代理类源码,如果嫌弃太多,希望有针对性的输出某个代理类的源码,可以采用以下方式:

    在代码中添加以下红框中逻辑,即可生成指定实例所在类的源码,然后输出

     红框中的代码逻辑是: 生成employeeDao实例所在类的源码文件.

    注意这段代码生成的是任意实例所在类的源码文件,也就是说不管是不是代理类,都可以输出源码.

    (所以只要确定了某个实例是一个代理类的实例,即可生成代理类的源码.

    一般来说,看一个实例是不是代理类的实例,只要看它的类名上是否带有$proxy字样,有,就是,没有,就不是.)

    --------------------以下是补充的第三种方法-----------------------------

    在main方法中添加一个系统属性

    System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles","true");
    注意: 是main方法中,而不是test方法中,注意属性值是字符串true,而不是布尔值true.

    以上仅是个人的分析工具记录,非核心技术总结

  • 相关阅读:
    Web service是什么?
    SQL截取字符串
    SQL Server中使用索引性能的比较
    一个C#中webservice的初级例子(一)
    short s1 = 1; s1 = s1 + 1;有错而short s1 = 1; s1 += 1正确。为何?
    SQL索引
    ORDER BY 子句在子查询和公用表表达式中无效的一种解决办法使用表变量
    创建 索引,
    时间的重叠
    SQLServer Datetime数据类型的转换
  • 原文地址:https://www.cnblogs.com/wangxuejian/p/13286078.html
Copyright © 2020-2023  润新知