#spring #spring-mvc #initialization
#spring #spring-mvc #инициализация
Вопрос:
Именно здесь я хочу получить доступ к компонентам
public class MyWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
....
Show show = new Show();
....
}
}
Здесь мы управляем нашими компонентами:
@Configuration
public class MyBeans {
@Bean
public Magic magic() {
return new Magic();
}
@Bean
public Magician magician() {
return new magician();
}
}
Это класс Magician:
@Component
public class Magician {
@Autowire
Magic magic;
....(other functions)
}
Это класс для показа:
@Component
public class Magician {
@Autowire
Magician magician;
....(other functions)
}
Я ищу способ для моего объекта Show использовать компонент Magician, созданный в классе My beans. В настоящее время он не использует компонент, потому что я использую new для создания экземпляра show, а это означает, что он не управляется spring. Я видел, что существуют реализации, выполняемые с использованием перехватчика AspectJ или с использованием контекста приложения. Однако при добавлении следующей строки: ApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
в мой класс веб-инициализатора я получаю сообщение об ошибке, указывающее, No WebApplicationContext found: no ContextLoaderListener registered?
что я не совсем уверен, куда идти дальше.
Комментарии:
1. Можете ли вы поделиться классом
Show
? Кажется, что вы поделились в два раза классомMagician
2. Вы не можете. Поскольку
WebApplicationInitializer
это место, где все загружается. Зачем вам нужен вашShow
в этом классе?