java - 如何在类上创建一个方面,而不是使用 Spring AOP 的 bean?

标签 java spring aop aspectj

我在处理遗留应用程序,其中使用了 Spring AOP(即 ProxyFactoryBean)。

我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。 AspecjJ 切入点表达式如下所示: 执行(* xyz.package.Class.method())

我创建了一个 MethodInterceptorAspectJExpressionPointcut,但我不知道如何让这两者协同工作。

编辑:
我没有此类的源代码,它是第 3 方库。这个类的实例不是我创建的,既不是在源代码中,也不是在作为 beans 的 spring 配置中。它由图书馆内部使用。

感谢任何帮助。

最佳答案

您可以使用具有完整 AspectJ 支持的加载时编织,如所述 here ,它不需要访问被建议类的源代码,也不需要控制它们的实例化(尽管它需要 <context:load-time-weaver /> 和使用 -javaagent:...other methods 的编织器本身的存在)。

关于java - 如何在类上创建一个方面,而不是使用 Spring AOP 的 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2470014/

相关文章:

spring - 没有可用的 'org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext' 类型的合格 bean

java - 我应该如何为重载方法指定 AOP 方面?

java - 有没有办法从父类(super class)访问子类元素?

Swing 应用程序中嵌入式 HTTP 服务器的 Java 类

java - 实现基类方法的java方法可以返回继承类吗?

RMI 中的 java.lang.ClassNotFoundException,没有禁用安全管理器 RMI 类加载器

java - 创建 bean 时出错 : Instantiation of bean failed; nested exception is java. lang.ExceptionInInitializerError

java - Spring Web MVC 本地化显示日语错误

java - 如何让 Spring 为我的 bean 创建 AOP 代理

java - Spring AOP 中代理的使用