Spring, используя новый ClassPathXmlApplicationContext и получая ошибку, так как не удается найти applicationContext.xml и другие? - PullRequest
2 голосов
/ 16 февраля 2011

Я пытаюсь следовать этому руководству: http://www.vogella.de/articles/SpringDependencyInjection/article.html, чтобы использовать внедрение зависимостей аннотации в моем приложении.Я настроил bean-компонент и т. Д., Как в учебнике, а затем пытаюсь получить экземпляр bean-компонента в своем классе MainController (класс контроллера, который обрабатывает создание конкретной страницы для моего весеннего веб-приложения mvc).*

SEVERE: Servlet.service() for servlet spring threw exception

    java.io.FileNotFoundException: class path resource [WEB-INF/applicationContext.xml] cannot be opened because it does not exist

Я делаю это в моем главном контроллере:

    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

    BeanFactory factory = context;
    BeanIRPlus beanirPlus = (BeanIRPlus) factory
            .getBean("BeanIRPlus");
    IRPlusInterface irPlus = beanirPlus.getIRPlus();

Я искал и искал по этому вопросу, но пока не нашел ответ, который решит мою проблему.Моё applicationContext внутри в webapp / WEB-INF / и мое весеннее приложение, кажется, работают иначе, так как обрабатывали запросы и т. Д. До этого.Я попытался поместить applicationContext.xml в классы WEB-INF, но все еще ничего.Есть ли обходной путь, чтобы заставить этот путь не искать путь таким образом, так как я думаю, что он выполняет поиск относительного пути.Спасибо за любой совет

1 Ответ

2 голосов
/ 16 февраля 2011

Не прямой ответ, но здесь идет.

Учебник, на который вы ссылались, предназначен для внедрения зависимостей в автономном приложении, а не в веб-приложении. В случае веб-приложения Spring автоматически загружает файлы контекста и инициализирует компоненты. Таким образом, вам не понадобится ни одна из строк, указанных в MainController.

Вместо этого вы можете сделать что-то подобное, чтобы использовать beanIRPlus bean в вашем контроллере.

@Autowired
private BeanIRPlus beanIRPlus;
...