Nano Hash - криптовалюты, майнинг, программирование

Зачем использовать иерархии Spring ApplicationContext?

Я пытаюсь понять иерархии ApplicationContext весной.

Я узнал следующее

  1. ApplicationContext не может иметь более 1 родительского ApplicationContext.
  2. Когда данный ApplicationContext не может разрешить bean-компонент, он передаст запрос на разрешение своему родителю.
  3. Родительский объект ApplicationContext указывается в его конструкторе.

Я хотел бы понять, когда использовать иерархии ApplicationContext (вместо одного ApplicationContext).

Лучшее, что я смог получить от Google, это это< /а>. И я понимаю, что если приложение имеет большое количество bean-компонентов, определенных на различных уровнях, то каждый уровень, имеющий свой собственный ApplicationContext, будет преимуществом. Что не понятно, так это то, в чем польза от этого и как достигается польза?

27.02.2011

  • Привет! Кажется, ссылка, которую вы указали в вопросе, не указывала на статью о весенних контекстах :) 11.10.2020
  • Спасибо, что указали на это @aggredi. Я нажал ссылку на ссылку. 09.11.2020

Ответы:


1

Классический вариант использования для этого — когда у вас есть несколько Spring DispatcherServlet в одном веб-приложении, причем каждый из этих сервлетов имеет свой собственный контекст приложения, но которым необходимо совместно использовать bean-компоненты между ними. В этом случае вы добавляете третий контекст на уровне веб-приложения, который является родительским для каждого из контекстов приложения сервлета.

Вы можете использовать этот шаблон дальше, например, если у вас есть несколько веб-приложений, объединенных в один JavaEE EAR. Здесь EAR может иметь свой собственный контекст, который является родителем отдельных контекстов веб-приложений, который является родителем контекстов сервлета и так далее. У вас есть эта иерархия ответственности.

В других ситуациях структура контекста диктуется каким-то другим фактором. Например, Spring Security не зависит от Spring MVC и требует, чтобы его компоненты конфигурации работали в контексте веб-приложения. Если вы хотите использовать с ним Spring MVC, тогда конфигурация для этого должна войти в контекст сервлета, который имеет корневой контекст веб-приложения в качестве родителя.

27.02.2011
  • Читая дальше, понял следующее (скаффман уже указывал часть этого). Каждое веб-приложение Spring MVC имеет один контекст корневого приложения и один контекст приложения сервлета для каждого DispatcherServlet. Контекст корневого приложения является родительским для каждого контекста приложения сервлета. Компоненты, определенные в contextConfigLocation (параметр контекста в web.xml), загружаются в корневой контекст приложения. Компоненты в ‹servlet-name›-servlet.xml загружаются в контекст приложения сервлета. Если в EAR есть несколько веб-приложений, контекст приложения уровня EAR может быть родителем корневого контекста каждого веб-приложения в EAR. 01.03.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..