#java #jetty #ehcache
#java #jetty #ehcache
Вопрос:
-
Мое Java-приложение использует Jetty (версия 9.4) в качестве сервера. Мне интересно, требуется ли это
ehcache-core
в качестве зависимости по какой-либо причине, такой как управление сеансами и т.д.? -
ehcache-core
Потребуется, если приложение не имеет состояния?
Комментарии:
1. Если вы используете maven, вы можете перечислить все зависимости с
mvn dependency:tree
Ответ №1:
Eclipse Jetty не зависит от ehcache ни в одном из своих компонентов.
- Сервер имеет
SessionIdManager
- Управляет каждым
ServletContext
(например, каждым развернутым веб-приложением)SessionCache
ЗаServletContext
SessionDataStore
ЗаSessionCache
- Управляет каждым
Реальных вариантов для SessionIdManager
нет, есть только одна реализация.
Для SessionCache
у вас есть следующие реализации в Jetty.
- Если не сконфигурировано, у вас будет
DefaultSessionCache
(который сам по себе не может быть настроен) session-cache-hash
— будет использовать in memoryHashMap
для отслеживания сеансов.session-cache-null
— не будет кэшироватьсяSession
наServletContext
уровне (иногда это очень полезная конфигурация, просто означает, что вы будете больше полагаться наSessionDataStore
)
SessionCache
Может быть специально настроена для каждого ServletContext
, но она также может быть настроена на уровне сервера с помощью SessionCacheFactory
реализации, которая будет использоваться при развертывании нового веб-приложения.
Для SessionDataStore
у вас есть несколько доступных реализаций.
- Null — нет хранилища сеансов (вы полагаетесь только на кеш)
- Сохранение файла — сеанса на диске
- JDBC — сохранение сеанса в источнике данных
- Сохранение кэша — сеанса в Memcache
- GCloud — сохранение сеанса в облачном хранилище Google
- Mongo — сохранение сеанса в Mongo DB
- Infinispan — сохранение сеанса в Infinispan