Я пытаюсь обновить старое приложение Spring. В частности, я пытаюсь извлечь все bean-компоненты из старой формы, определенной в xml, и перетащить их в формат @SpringBootApplication (при этом значительно сокращая общее количество определенных bean-компонентов, потому что многим из них не нужно было фасоль). Моя текущая проблема заключается в том, что я не могу понять, как сделать ServletContext доступным для bean-компонентов, которым он нужен.
Мой текущий код выглядит примерно так:
package thing;
import stuff
@SpringBootApplication
public class MyApp {
private BeanThing beanThing = null;
@Autowired
private ServletContext servletContext;
public MyApp() {
// Lots of stuff goes here.
// no reference to servletContext, though
// beanThing gets initialized, and mostly populated.
}
@Bean public BeanThing getBeanThing() { return beanThing; }
@PostConstruct
public void populateContext() {
// all references to servletContext go here, including the
// bit where we call the appropriate setters in beanThing
}
}
Ошибка, которую я получаю обратно: Field servletContext in thing.MyApp required a bean of type 'javax.servlet.ServletContext' that could not be found.
Так ... что мне не хватает? Есть ли что-то, что я должен добавить к пути? Какой интерфейс мне нужно реализовать? Я не могу предоставить бин сам, потому что весь смысл в том, что я пытаюсь получить доступ к контекстной информации сервлета (строки getContextPath () и getRealPath ()), которой у меня нет.