打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
动态代理方法互调,静态成员类

在日常使用,还有面试中,经常会涉及到AOP的相关知识,AOP虽好,但是有一些小的细节注意不到,可能会被坑;

1.动态代理类的方法互调,被调用的方法会不会生成代理?

2.静态成员类,调用过程中会不会生成代理?

对以上这些问题进行测试:

首页,这是AOP切面代码

@Component@Aspectpublic class AopTest {    @Pointcut("execution(public * com.wuzhiaite.javaweb.spring.serveice.AopServiceTest.*(..))")    public void AopTest(){ }
@Before(
"AopTest()") public void doBefore(){ System.out.println("doBefore"); }
@After(
"AopTest()") public void doAfter(){ System.out.println("doAfter"); }}

 接下来:被代理类的代码

@Servicepublic class AopServiceTest {    public void testMethod(){        new Inner().innerMethod();        System.out.println("testMethod");        this.testMethod2();    }    public void testMethod2(){        System.out.println("testMethod22222222");    }    public static class Inner{        public void innerMethod(){            System.out.println("innerMethod");        }    }}

再接下来,测试以下:

@RunWith(SpringJUnit4ClassRunner.class)@Slf4j@EnableAspectJAutoProxypublic class SpringBootJavawebBaseApplicationTests {    @Autowired    private AopServiceTest service;    @Test    public void aopTest1(){        service.testMethod();        new AopServiceTest.Inner().innerMethod();//静态内部类并不会生成代理类    }}

测试出来的结果是:

 

 很显然,静态成员类和方法内部调用的方法并没有生成代理,至于原因,后面康康源码再补充

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java学习路线:Spring框架之动态代理
Java的三种代理模式
java设计模式精讲 Debug 方式+内存分析 第16章 代理模式讲解
从代理机制到Spring AOP
十分钟理解Java中的动态代理
实例_ Java中的代理模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服