我只是试图检测我的spring-boot
应用程序。我想在主类中添加一个@Bean
。目的是将跟踪器初始化为bean
最初尝试以下
new AgentBuilder.Default()
.type(ElementMatchers.nameStartsWith("my.package.name"))
.transform((builder, typeDescription, classLoader, module) -> builder.visit(
Advice.to(BootUpInterceptor.class)
.on(hasMethodName("main"))
)
).installOn(instrumentation);
@Advice.OnMethodEnter
static void initializeTracerAtMain(@Advice.Origin String methodName) throws Exception{
System.out.println("Initializing Tracer in Method "+methodName);
// Tracer Initializers
}
基本上是初始化jaeger
跟踪器的配置。这是可行的,但我需要使用GlobalTracer
注册跟踪器。
如何将该初始化程序作为bean添加到现有的main classs
中?我想念什么吗?
如果您有Java配置类,则可以对其进行检测,并使用@Bean
添加带有defineMethod
注释的方法。另外,您可以检测应用程序上下文的构造函数,并在退出建议中显式注册Bean。