как получить Спрингс ApplicationContext в Struts2? - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть веб-проект struts2 с плагином Spring. ApplicationContext.xml находится на

/WEB-INF/applicationContext.xml

Как бы я мог получить доступ к нему в моем классе

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

не похоже на работу.

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Вы на самом деле не делаете это правильно, так как вам не следует загружать контекст приложения. Тем не менее, вы пробовали:

new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

Я бы предложил добавить следующее в ваш web.xml:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Это обеспечит инициализацию контейнера Spring IOC при запуске приложения. Затем вы можете использовать Spring, чтобы обеспечить ваши действия необходимыми зависимостями. Вам не нужно захватывать контейнер IOC, как вы это делаете, поскольку это не внедрение зависимостей.

0 голосов
/ 02 февраля 2012

Только файлы в WEB-INF/classes попадают под classpath.Вам лучше переместить его в каталог WEB-INF/classes.

Вы также можете загрузить файл контекста из вашего web.xml, используя один из прослушивателей контекста Spring.Можете ли вы объяснить, почему вы загружаете конфигурацию Spring в свое веб-приложение?Это даст нам лучшую идею, чтобы предложить.

...