// Inside your premain method:
new AgentBuilder.Default()
.type(named("org.springframework.context.support.AbstractApplicationContext"))
.transform((builder, typeDescription, classLoader, module) ->
builder.visit(Advice.to(SpringRefreshAdvice.class).on(named("refresh")))
).installOn(inst);
====
// 1. The Interceptor: This runs when Spring's refresh() finishes
public static class SpringRefreshAdvice {
@Advice.OnMethodExit
public static void onExit(@Advice.This Object context) {
// We use reflection or casting to pass the context to our visualizer
if (context instanceof org.springframework.context.ConfigurableApplicationContext) {
SpringVisualizer.start((org.springframework.context.ConfigurableApplicationContext) context);
}
}
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)