• 根据类信息和提供的代理类名称,生成字节码,然后通过流的方式写到磁盘文件中(动态代理)


    package com.bijian.jdkproxy;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.lang.reflect.Proxy;
    import sun.misc.ProxyGenerator;

    public class ProxyUtils {

    /*
    * 将根据类信息 动态生成的二进制字节码保存到硬盘中,
    * 默认的是clazz目录下
    * params :clazz 需要生成动态代理类的类
    * proxyName : 为动态生成的代理类的名称
    */
    public static void generateClassFile(Class clazz, String proxyName) {

    //根据类信息和提供的代理类名称,生成字节码
    byte[] classFile = ProxyGenerator.generateProxyClass(proxyName, clazz.getInterfaces());
    String paths = clazz.getResource(".").getPath();
    System.out.println(paths);
    FileOutputStream out = null;

    try {
    //保留到硬盘中
    out = new FileOutputStream(paths + proxyName + ".class");
    out.write(classFile);
    out.flush();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }

  • 相关阅读:
    Redis线程模型理解
    策略模式
    Spring Cloud 5大组件介绍
    单例模式
    hotspot虚拟机的调试
    编译虚拟机jvm——openjdk的编译
    mybatis的搭建和注入spring的方式
    springMvc+hibernate的web application的构建
    关于本博客
    本博客已停更
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/8710405.html
Copyright © 2020-2023  润新知