Количество весенних контекстов, созданных ContextLoaderListener - PullRequest
1 голос
/ 26 сентября 2011

Легко узнать, сколько контекстов было создано, если мы создадим ApplicationContext экземпляров программно. Однако сколько контекста создается, если мы используем ContextLoaderListener? Например, ссылка Spring , как показано ниже:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Имеет 2 контекста XML-файлов. Значит ли это, что созданы 2 контекста?

Спасибо.

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

ContextLoaderListener создает только один контекст приложения, содержащий все компоненты из файлов, выбранных в contextConfigLocation. Определения bean-компонентов объединяются в единый контекст.

Однако если вы используете Spring MVC, фреймворк будет создавать один дополнительный дочерний контекст для каждого DispatcherServlet.

1 голос
/ 26 сентября 2011

Создан только один контекст - существует только один корневой контекст приложения.

Слушатель начальной загрузки для запуска и завершения работы корневого Web-приложения Spring.

Если вы посмотрите на код ContextLoader - он создает WebApplicationContext с использованием параметра contextConfigLocation (который позже анализируется контекстом)

...