Уровень контекста в архитектуре веб-приложений Spring

Я борюсь с уровнем архитектуры веб-приложения Spring, ниже я делаю свои указатели. Пожалуйста, помогите относительно ниже:

Программирование на уровне контекста: контекст сервлета и контекст веб-приложения корневого приложения и контекст веб-приложения.

  1. Я не знаю, какой боб должен упоминать, на каком уровне.

  2. Что такое уровень иерархии контекста в веб-приложении Spring. который идет сверху или снизу.

  3. Какой контекст находится под каким контекстом.

Я понимаю, что Servlet Context - это объект Servlet Container(контейнер Tomcat), и контейнер Servlet отвечает за управление всем сервлетом, где живет весь сервлет.

Все зависимости Бина живут в контейнере приложения, а корневой контекст веб-приложения является объектом контейнера приложения.

Каждый сервлет имеет свой собственный контекст веб-приложения, я не знаю, что это такое, такой же, как контекст сервлета.

4. А связь между ними?

Пожалуйста, опишите это с помощью диаграммы, как это, (это будет действительно заметно)

Это просто пример, чтобы понять, что загружается первым, а что внутри чего. Пожалуйста, проверьте эту схему

1 ответ

Думайте о контексте как о среде выполнения компонента.

Контейнер сервлетов (веб-сервер), размещает веб-приложения и при запуске создает один ServletContext для каждого из этих приложений. Таким образом, каждое веб-приложение живет в контексте сервлета, который предоставляет ему информацию о своей среде (контейнере). Это Java Servlet API. Tomcat является реализацией этого API.

Теперь Spring является одной из сред, которые мы можем использовать для создания веб-приложений. Когда мы развертываем наше веб-приложение в контейнере, оно (контейнер) создает ServletContext, и именно здесь наше приложение будет жить.

Каждое приложение Spring имеет корневой контекст (ApplicationContext), и в нем может существовать один или несколько дочерних контекстов. WebApplicationContext расширяет ApplicationContext. Может быть много WebApplicationContexts, потомков корневого контекста приложения. WebApplicationContext (который добавляет метод getServletContext()) может работать с ServletContext, в котором он живет.

Итак, в весеннем веб-приложении, развернутом в контейнере:

контейнер - содержит 1..n -> ServletContext - содержит 1 -> ApplicationContext - содержит 1..n -> WebApplicationContext

Другие вопросы по тегам