Java Aspectj关于字段和类初始化的建议

Java Aspectj关于字段和类初始化的建议,java,aspectj,Java,Aspectj,我正在为我的应用程序实现一种监控框架。基本思想是使用Aspectj编写一段代码,通过JMX公开带有特定注释的变量。 所以我使用切入点 @Around("get (@mypackage.Gauge * *) && @annotation(annotation)") 然而,为了通过JMX公开我的变量,我需要获得它的值一次(以便JMX绑定发生)。我使用编译时编织。一旦加载了带有@Gauge注释的类,有什么方法可以执行某段代码吗 有没有什么方法可以让我在 是否加载带有@Gauge注释的

我正在为我的应用程序实现一种监控框架。基本思想是使用Aspectj编写一段代码,通过JMX公开带有特定注释的变量。 所以我使用切入点

@Around("get (@mypackage.Gauge * *) && @annotation(annotation)")
然而,为了通过JMX公开我的变量,我需要获得它的值一次(以便JMX绑定发生)。我使用编译时编织。一旦加载了带有@Gauge注释的类,有什么方法可以执行某段代码吗

有没有什么方法可以让我在 是否加载带有
@Gauge
注释的类

对。试试这个:

after():静态初始化(@Gauge*){
//在这里做点什么
}
有没有什么方法可以让我在 是否加载带有
@Gauge
注释的类

对。试试这个:

after():静态初始化(@Gauge*){
//在这里做点什么
}

问题不清楚,请详细说明。为什么CTW和LTW在这方面有什么区别?无论何时以及如何编织方面代码,它都将在运行时执行。使用spring运行应用程序时,假定您的bean是通过.xml文件中的声明创建的。在这种情况下,我可以将InitializingBean接口添加到这些类中,并在afterPropertiesSet方法中执行初始化。但是,我的bean不是由spring直接创建的,所以我不能使用初始化bean。问题不清楚,请详细说明。为什么CTW和LTW在这方面有什么区别?无论何时以及如何编织方面代码,它都将在运行时执行。使用spring运行应用程序时,假定您的bean是通过.xml文件中的声明创建的。在这种情况下,我可以将InitializingBean接口添加到这些类中,并在afterPropertiesSet方法中执行初始化。但是,我的bean不是由spring直接创建的,所以我不能使用InitializingBean