Добавление Bean для запуска Spring Boot с помощью Byte Buddy - PullRequest
0 голосов
/ 16 января 2020

Я просто пытаюсь установить мое приложение 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, чтобы зарегистрировать трассировщик.

Как я могу добавить этот инициализатор как компонент к моему существующему main classs? Я что-то упустил?

1 Ответ

0 голосов
/ 16 января 2020

Если у вас есть класс конфигурации Java, вы можете использовать его и добавить аннотированный метод @Bean, используя defineMethod. В качестве альтернативы вы можете использовать конструктор контекста приложения и явно зарегистрировать компонент в советах по выходу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...