SLAM11111111111 2018-12-18 02:20
浏览 331
已结题

为什么cglib动态代理执行顺序随机?

不像JDK代理一样打印,代理前->执行代理对象->代理后;
而是代理对象执行随机好像。

class People{
    void hello(String arg) {
        System.out.println(arg);
    }
}
public class CglibProxy implements MethodInterceptor {

    public Object getProxy(Class cls) {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(cls);
        enhancer.setCallback(this);
        return enhancer.create();
    }

    /***
     * 
     * 为什么这个动态代理奇怪在它的打印顺序是随机的。不保序;
     */
    @Override
    public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
        System.err.println("say it for always");
        Object result = methodProxy.invokeSuper(proxy, args);
        System.err.println("say it together");
        return result;
    }


    public static void main(String[] args) {
        CglibProxy cp = new CglibProxy();
        People obj = (People)cp.getProxy(People.class);
        obj.hello("And what they played was a masquerade");
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?
    • ¥15 电磁场的matlab仿真
    • ¥15 mars2d在vue3中的引入问题
    • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
    • ¥15 算法题:数的划分,用记忆化DFS做WA求调
    • ¥15 chatglm-6b应用到django项目中,模型加载失败
    • ¥15 CreateBitmapFromWicBitmap内存释放问题。
    • ¥30 win c++ socket
    • ¥15 C# datagridview 栏位进度