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

使用spring AOP方面拦截方法?

督弘化
2023-03-14

我正在使用spring AOP拦截这些方法。我在spring配置文件中有以下配置。

<aop:aspectj-autoproxy />

方面类:

@Aspect
public class MyAspect{

 @Around("execution(public * *(..))")
public Object doAction(ProceedingJoinPoint call) throws Throwable {

 //somelogic
}

上面的方法不拦截私有方法?要求方面既拦截私有方法,又拦截公有方法,怎么办?

共有1个答案

籍弘伟
2023-03-14

私有方法可能不会被拦截,因为它们可能不会通过代理调用。

但是,您可以使用本机AspectJ编织,如下页的第8.8.4点所示:

http://docs.spring.io/spring/docs/4.0.0.release/spring-framework-reference/html/aop.html#aop-pointcuts-designators

 类似资料:
  • 问题内容: 我有这个代码 有什么方法可以在没有子类化或修改类且没有工厂的情况下拦截呼叫? 编辑:抱歉忘了提到这是在Android平台上。 问题答案: 您是否考虑过面向方面的编程,甚至还考虑过AspectJ?有关AspectJ / Android的信息,请参见此处和此处。

  • 问题内容: 我正在使用Java EE 6和Jboss AS7.1,并尝试使用拦截器绑定(来自jboss网站的示例)。 我有一个InterceptorBinding注解: 拦截器: 还有一个豆: 但是拦截器没有被称为。。。 在编写此代码时将调用拦截器: 谢谢你的帮助。 问题答案: 您是否按照参考示例中的说明启用了拦截器? 缺省情况下,bean档案没有通过拦截器绑定绑定的已启用拦截器。必须通过将侦听器

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

  • 问题很简单 在这里打破头! 编辑:一个小突破。我打印了目标,它返回的是SimpleJPrepository,而不是实际的存储库。

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

  • 问题内容: 我正在用python实现RESTful Web服务,并想通过拦截函数调用并记录其执行时间等方式来添加一些QOS记录功能。 基本上,我想到了所有其他服务都可以从中继承的类,该类会自动覆盖默认方法的实现,并将其包装在logger函数中。实现此目标的最佳方法是什么? 问题答案: 像这样吗 这暗示着在您的方法中添加装饰器(如果您愿意,也可以基于此创建一个显式装饰器): 当您现在尝试类似的方法: