Как Spring создает контекст приложения или иерархию контейнеров?

по данным МОК Контейнер, Spring может управлять иерархией контекста или иерархией контейнеров, а затем использовать <ref parent="beanId"/> для ссылки на bean в Родительском контексте. Какой механизм Spring использует для создания этой иерархии контейнеров? Можно ли использовать <import resource="application-context.xml"/> команда для создания этой иерархии? Приведите пример контекста приложения, который формирует иерархию.

1 ответов


иерархия контекста приложения создается автоматически; например, каждое приложение Spring MVC создает отдельный контекст для каждого DispatcherServlet. Этот контекст является дочерним от общего родительского контекста. Таким образом, каждый дочерний контекст может получить доступ к бобам из родительского контекста, но не наоборот. Кроме того, родственные контексты разделены и невидимы друг для друга.

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

<import> construct объединяет бобы из импортированного файла, поэтому это способ физического разделения определений бобов на несколько файлов, но все они заканчиваются в одном контексте. Кстати, жаль, что нет XML-тега для определения дочернего контекстного файла (?)