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

时间:2010-03-18 13:13:08

标签: java spring aop aspectj

我在遗留应用程序上工作,使用Spring AOP(即ProxyFactoryBean)。

我需要在某个类的方法周围添加一个方面。然而,这个类一个bean。 AspecjJ切入点表达式如下: execution(* xyz.package.Class.method())

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

修改
我没有这个类的源代码,它是第三方库。这个类的实例不是由我创建的,既不在源代码中,也不在spring配置中作为bean创建。它由库内部使用。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:3)

试试@Configurable。它在this docs中进行了解释。

  

@Configurable批注标记一个类符合Spring驱动配置的条件

(您需要<context:load-time-weaver />

<强>更新 您可以将第三方组件作为applicationContext.xml <bean class=".." />列在@Configurable中,使其成为bean;

答案 1 :(得分:3)

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