我在遗留应用程序上工作,使用Spring AOP(即ProxyFactoryBean
)。
我需要在某个类的方法周围添加一个方面。然而,这个类不一个bean。
AspecjJ切入点表达式如下:
execution(* xyz.package.Class.method())
我创建了MethodInterceptor
和AspectJExpressionPointcut
,但我不知道如何让这两者协同工作。
修改:
我没有这个类的源代码,它是第三方库。这个类的实例不是由我创建的,既不在源代码中,也不在spring配置中作为bean创建。它由库内部使用。
任何帮助表示感谢。
答案 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)来存在织工本身。