• 张滔
    2021-03-27
    一个ProxyFactory只能代理一个对象么?构造函数传递的是对象

    作者回复: 通常只能代理一个对象

    
    
  • sljoai
    2021-03-02
    老师,请问一下: 默认情况下,ProxyFactoryBean与ProxyFactory底层都是使用基于JDK的动态代理嘛?

    作者回复: 默认情况的确如此~

    共 2 条评论
    
  • 练习生
    2021-01-09
    小马哥 你视频里的代码我自己运行了报NPE,你在视频里演示的时候也是一样报了这个异常。我试着把proxyFactory.setTargetClass(DefaultEchoService.class);这行代码注释后,就能正常运行了,这是为什么,spring内部做了什么处理 DefaultEchoService defaultEchoService = new DefaultEchoService(); // 注入目标对象(被代理) ProxyFactory proxyFactory = new ProxyFactory(defaultEchoService); proxyFactory.setTargetClass(DefaultEchoService.class); // 添加 Advice 实现 MethodInterceptor < Interceptor < Advice proxyFactory.addAdvice(new EchoServiceMethodInterceptor()); // 获取代理对象 EchoService echoService = (EchoService) proxyFactory.getProxy(); System.out.println(echoService.echo("Hello,World"));
    展开

    作者回复: 你可以看一下代码,这个问题在后面的章节会解答,实际上,问题在 ProxyFactory 构造器之上,里面会设置 setTargetClass 方法

    共 2 条评论
    
  • 流浪剑客
    2021-01-07
    小马哥,ProxyFactoryBean、ProxyFactory、AspectJProxyFactory 三者直接有啥联系和区别?三者都继承ProxyCreatorSupport

    作者回复: 哈哈,后面会讲的,等更新吧~

    
    
  • licun
    2022-07-26
    拦截 EchoService 的方法:public abstract java.lang.String org.geekbang.thinking.in.spring.aop.overview.EchoService.echo(java.lang.String) throws java.lang.NullPointerException Exception in thread "main" java.lang.NullPointerException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.geekbang.thinking.in.spring.aop.features.interceptor.EchoServiceMethodInterceptor.invoke(EchoServiceMethodInterceptor.java:34) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy0.echo(Unknown Source) at org.geekbang.thinking.in.spring.aop.features.ProxyFactoryDemo.main(ProxyFactoryDemo.java:40)
    展开
    
    