Загрузка вручную созданного объекта в контекст Spring - PullRequest
2 голосов
/ 04 августа 2020

У меня есть объект, созданный с помощью оператора new. Есть ли способ в Spring загрузить этот объект в контекст приложения Spring?

Я провел небольшое исследование, но не смог найти рабочего решения. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Вы можете использовать класс Spring @Configuration и определить там метод @Bean. В этом методе создайте свой собственный объект new и убедитесь, что вы вернули этот объект.

@Bean
public YourType methodName() {
    //code here..
    return new YourType();
}

Поместите его в свой @Configuration класс, и объект, возвращенный return new YourType();, будет зарегистрирован в вашем Spring Context .

1 голос
/ 05 августа 2020
  • Если вы создаете объект после запуска приложения Spring и хотите зарегистрировать его как bean-компонент с помощью Spring, вы можете это сделать. ie. только во время выполнения вы будете знать, как он будет создан или этот объект будет создан внешней структурой, над которой вы не можете контролировать. Я просто не могу вспомнить фреймворки, есть фреймворки, которые использовали это средство.
     //Get hold of application context, you can autowire it
     ConfigurableApplicationContext context;
            
     ServiceX servicex = //This object was created outside spring framework.

     //Register it with spring
     context.getBeanFactory().registerSingleton("servicex", servicex);

     //Above bean is now available as part of spring application context.

...