当前位置: 首页 > 知识库问答 >
问题:

用cglib拦截静态方法

柯建业
2023-03-14

我正在具体的类上创建动态代理。因为Java的普通代理类只对接口有帮助,所以我选择了cglib。
我使用带有MethodInterceptor的增强器类来拦截我的代理的方法,我能够拦截除静态方法之外的所有方法调用。

有什么方法可以使用cglib拦截对静态方法的调用吗?

共有1个答案

薛霄
2023-03-14

这是不可能的,cglib通过创建一个子类来实现类,在该子类中覆盖所有方法以应用拦截逻辑。这对于静态方法是不可能的,因为cglib不支持这一点。

 类似资料:
  • 我正在使用Spring并试图用AspectJ编写示例应用程序。我需要学习如何拦截静态方法调用。在我的示例中,我尝试截取main方法,如下所示: Spring配置文件: 主要方法: 协会本身: 但是当我运行应用程序时,唯一的字符串正在打印。

  • 本文向大家介绍详解springmvc拦截器拦截静态资源,包括了详解springmvc拦截器拦截静态资源的使用技巧和注意事项,需要的朋友参考一下 springmvc拦截器interceptors springmvc拦截器能够对请求的资源路径进行拦截,极大的简化了拦截器的书写。但是,千万千万要注意一点:静态资源的放行。 上代码: 问题来了,在请求jsp页面的时候,你的静态资源的访问仍然会被自定义拦截器

  • 我不知道咋拦截,我想不修改源代码的情况下进行拦截增强,我发现使用cglib需要手动使用Enhancer#create()方法创建一个代理类,手动调用才能触发Callback的钩子函数

  • 问题内容: 主题行基本上说明了一切。我有一个静态方法要拦截,以便可以将周围的建议应用于该方法。我可以使它与任何非静态方法一起使用,但是我不确定如何允许静态方法被拦截。 问题答案: 使用Spring AOP不能做到这一点,因为它是基于代理的。您必须使用AspectJ。看一个简单的例子:http : //blog.jayway.com/2007/02/16/static-mock-using- asp

  • Spring文档说明: 输出: 同样-通过实验-CGLIB库(不使用spring,使用增强器类)也允许代理包级方法。 更新 我想我找到了接受公共方法的这种行为只会发生的地方。它发生在处,这是切入点()使用的。 来自代码:

  • 本文向大家介绍防止SpringMVC拦截器拦截js等静态资源文件的解决方法,包括了防止SpringMVC拦截器拦截js等静态资源文件的解决方法的使用技巧和注意事项,需要的朋友参考一下 SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一、拦截器中增加针对静态资源不进行过滤(涉及spr