Java 如何在类上创建一个方面,它不是使用SpringAOP的bean?
我在一个遗留应用程序上工作,其中使用了SpringAOP(即Java 如何在类上创建一个方面,它不是使用SpringAOP的bean?,java,spring,aop,aspectj,Java,Spring,Aop,Aspectj,我在一个遗留应用程序上工作,其中使用了SpringAOP(即ProxyFactoryBean) 我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。 AspecjJ切入点表达式如下所示: 执行(*xyz.package.Class.method()) 我创建了一个MethodInterceptor和AspectJExpressionPointcut,但我不知道如何使这两个工具协同工作 编辑: 我没有这个类的源代码,它是一个第三方库。这个类的实例不是我创建的,既不是源代码,也不是
ProxyFactoryBean
)
我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。
AspecjJ切入点表达式如下所示:
执行(*xyz.package.Class.method())
我创建了一个MethodInterceptor
和AspectJExpressionPointcut
,但我不知道如何使这两个工具协同工作
编辑:我没有这个类的源代码,它是一个第三方库。这个类的实例不是我创建的,既不是源代码,也不是spring配置中的bean。它由图书馆内部使用
感谢您的帮助。尝试
@可配置。这一点在本文中进行了解释
@Configurable注释将类标记为符合Spring驱动配置的条件
(您需要
)
更新
您可以通过在applicationContext.xml
中将第三方组件列为
(您不需要@可配置的
)您可以使用加载时编织和完整的AspectJ支持,如前所述,它不需要访问所建议类的源,也不需要控制它们的实例化(虽然它需要
和使用-javaagent:…
或的编织器本身的存在)。您不能将类包装成bean吗?我有连接池,即bean,它的所有内部对象都是用这个bean创建的(没有setter)。我想创建日志方面,它将记录从数据库获取连接所需的时间。这是其中一个内部对象的方法。那么目前,如何获取对(的实例)的引用这个类?不管怎样,我认为使用AspectJ和一些AroundAdvice,您可以在此应用程序上进行一些评测。Spring不需要使用AspectJI。这个类没有源代码,它是第三方库。那么为什么不将它添加到applicationContext.xml中呢?(请参阅我的更新)好的,但是我怎样才能在这样创建的bean上添加@Configurable?你不需要使用这个选项@Configurable-这个类已经是一个bean了。我更新了这个问题的更多细节。遗憾的是,我认为这种方法对我没有帮助,