2016-08-02 3 views
2

Я совершенно путаюсь с контекстом применения весной. Если я использую Spring (простая пружина), создайте beans.xml, а затем вызовите контекст приложения из (например) метода main().Как выделить весенний контекст?

ApplicationContext context = new FileSystemXmlApplicationContext 
      ("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml"); 

все работает хорошо. Но я не понимаю, могу ли я переместить файл в каталог выше или в другой каталог (например), это будет нормально?

В Spring-mvc есть контекст для каждого DispatcherServlet, который я создаю, и где я указываю некоторые компоненты, существует общий контекст для всех сервлетов, как указать это? в web.xml? в целом, пожалуйста, объясните мне этот момент (я читал весной в действии, я undesrstand почти все, но это сложно момент не показывают здесь

извините за мой плохой английский заранее

+0

В MVC существует два разных контекста: контекст приложения, который представляет собой контекст корневого приложения (только один), WebApplicationContext, который может быть несколько в зависимости от количества создаваемых сервлетов диспетчера. Spring по умолчанию загрузит файл с именем «xxx-servlet.xml» из папки webapps WEB-INF, где xxx - это имя сервлета в web.xml. – ankidaemon

+0

Для объявления контекстного объявления. Если вы явно не объявляете имя файла конфигурации контекста в web.xml с помощью параметра contextConfigLocation, Spring будет искать applicationContext.xml в папке WEB-INF и бросать FileNotFoundException, если он не может найти этот файл. – ankidaemon

+0

Должен ли я указывать базовый контекст приложения для всего приложения в web.xml? А другие для сервлетов в **** - servlet.xml? И я должен написать эту конфигурацию в web.xml (для spring-mvc)? Только для консолидации my knowleadge (: – Alex

ответ

1

От FileSystemXmlApplicationContext java doc:.

Контекст автономного XML-приложения с использованием файлов определения контекста из файловой системы или из URL-адресов, интерпретация простых путей как относительных местоположений файловой системы (например, «mydir/myfile.txt»). Полезно для тестовых жгутов, а также для автономные среды.

Ключевыми словами здесь являются файлы определения контекста, поэтому вы можете передавать пути к как можно большему количеству xml-файлов. Кроме того, вы можете создать контекст приложения и передать его на новый в качестве родителя:

FileSystemXmlApplicationContext(String[] configLocations, ApplicationContext parent) 

Таким образом, вы можете легко создать необходимую иерархию контекстов.

 ApplicationContext parentContext = new FileSystemXmlApplicationContext 
      ("C:/some/path/ParentBeans.xml"); 

     ApplicationContext childContext = new FileSystemXmlApplicationContext 
      (new String[]{"C:/some/path/ChildBeans1.xml", "C:/some/path/ChildBeans2.xml"}, parentContext); 

если я переместить файл на каталог, прежде всего, в другом каталоге (к примеру), это будет нормально?

До тех пор, пока ваш путь к файлу правильный и доступный - это нормально.

+0

спасибо за ответ !!!! – Alex

Смежные вопросы