Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在类上创建一个方面,它不是使用SpringAOP的bean?_Java_Spring_Aop_Aspectj - Fatal编程技术网

Java 如何在类上创建一个方面,它不是使用SpringAOP的bean?

Java 如何在类上创建一个方面,它不是使用SpringAOP的bean?,java,spring,aop,aspectj,Java,Spring,Aop,Aspectj,我在一个遗留应用程序上工作,其中使用了SpringAOP(即ProxyFactoryBean) 我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。 AspecjJ切入点表达式如下所示: 执行(*xyz.package.Class.method()) 我创建了一个MethodInterceptor和AspectJExpressionPointcut,但我不知道如何使这两个工具协同工作 编辑: 我没有这个类的源代码,它是一个第三方库。这个类的实例不是我创建的,既不是源代码,也不是

我在一个遗留应用程序上工作,其中使用了SpringAOP(即
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了。我更新了这个问题的更多细节。遗憾的是,我认为这种方法对我没有帮助,