Требуется ли серверу Jetty базовая библиотека EhCache в качестве зависимости?

#java #jetty #ehcache

#java #jetty #ehcache

Вопрос:

  1. Мое Java-приложение использует Jetty (версия 9.4) в качестве сервера. Мне интересно, требуется ли это ehcache-core в качестве зависимости по какой-либо причине, такой как управление сеансами и т.д.?

  2. ehcache-core Потребуется, если приложение не имеет состояния?

Комментарии:

1. Если вы используете maven, вы можете перечислить все зависимости с mvn dependency:tree

Ответ №1:

Eclipse Jetty не зависит от ehcache ни в одном из своих компонентов.

Управление сеансами в Jetty.

  • Сервер имеет SessionIdManager
    • Управляет каждым ServletContext (например, каждым развернутым веб-приложением)
      • SessionCache За ServletContext
        • SessionDataStore За SessionCache

Реальных вариантов для SessionIdManager нет, есть только одна реализация.

Для SessionCache у вас есть следующие реализации в Jetty.

  • Если не сконфигурировано, у вас будет DefaultSessionCache (который сам по себе не может быть настроен)
  • session-cache-hash — будет использовать in memory HashMap для отслеживания сеансов.
  • session-cache-null — не будет кэшироваться Session на ServletContext уровне (иногда это очень полезная конфигурация, просто означает, что вы будете больше полагаться на SessionDataStore )

SessionCache Может быть специально настроена для каждого ServletContext , но она также может быть настроена на уровне сервера с помощью SessionCacheFactory реализации, которая будет использоваться при развертывании нового веб-приложения.

Для SessionDataStore у вас есть несколько доступных реализаций.

  • Null — нет хранилища сеансов (вы полагаетесь только на кеш)
  • Сохранение файла — сеанса на диске
  • JDBC — сохранение сеанса в источнике данных
  • Сохранение кэша — сеанса в Memcache
  • GCloud — сохранение сеанса в облачном хранилище Google
  • Mongo — сохранение сеанса в Mongo DB
  • Infinispan — сохранение сеанса в Infinispan