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

    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();
    }
    }
    }
    }

  • 相关阅读:
    【面试题】面试题合集三
    【面试题】面试题合集二
    【面试易错题】陷阱题集一
    40个Java集合面试问题和答案
    java面试题全集(下)
    java面试题全集(中)
    java面试题全集(上)
    spring cloud基础教程
    spring boot基础学习教程
    DDD
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/8710405.html
Copyright © 2011-2022 走看看