Незважаючи на те що модуль Spring Modules Cache надає проксі-об'єкт для перехоплення викликів методів, який зберігає ре- зультати в кеші, він не має власної реалізації кеша. Вмес- то цього спирається на використання сторонніх рішень. Модулем підтримуються кілька механізмів кешування, включаючи на- дмуть:
# GigaSpaces; Q JBoss Cache; Q JCS;
Для використання в прикладі додатка RoadRantz я вибрав механізм EHCache. Це рішення засноване в першу чергу на мо му власному досвіді роботи з EHCache і на тій обставині, що це рішення вільно доступно в репозиторії Maven по адре- су: www.ibiblio.org. Однак незалежно від вибору настройки модуля Spring Modules Cache будуть дуже схожі для будь-яких рішень.
В першу чергу необхідно створити новий конфігураціон- ний файл Spring, куди будуть поміщатися настройки механізму ке- шірованія. В принципі, налаштування Spring Modules Cache можна помістити в будь-який конфігураційний файл Spring, що завантажується разом з додатком RoadRantz, але їх краще зберігати окремо. Тому створимо файл roadrantz-cache.xml. куди помістимо парамет- ри настройки механізму кешування.
Як і в будь-яких інших конфігураційних файлах Spring, кор- невим елементом в файлі roadrantz-cache.xml повинен бути елемент
Незалежно від обраного механізму кешування для його на- будівництва будуть використовуватися одні й ті ж елементи конфігурі- вання Spring, які перераховані в табл. 6.7.
Таблиця 6.6. Простору імен та схеми різних механізмів кешування, підтримуваних модулем Spring Modules
Оголошує кешовані методи, визначаючи проксі-об'єкт в XML -конфігурації Spring
Оскільки в прикладі вирішено використовувати механізм кешірова- ня EHCache, необхідно повідомити фреймворку Spring, де шукати конфігураційний файл EHCache1. Скористаємося для цього еле ментом
configLocation = "classpath: ehcache.xml" />
Атрибут configLocation в цьому фрагменті повідомляє фреймворку Spring, що файл з настройками EHCache слід завантажувати з кор- ня бібліотеки класів (classpath) додатки.
Зовнішній файл ehcache.xml для нашого прикладу містить настрой- ки, як показано в лістингу 6.9.
Лістинг 6.9. Налаштування механізму EHCache в файлі ehcache.xml
maxElementsInMemory = "500" overflowToDisk = "false" memoryStoreEvictionPolicy = "LFU"
eternal = "true" />
1 На момент написання цих рядків конфігурацію EHCache (і інших механізмів кешування) все ще доводилося визначати в зовнішніх XML файлах, використовуючи набори елементів, характерні для кожного ме ханізм. Але в майбутніх версіях, можливо, з'явиться підтримка визна- чення налаштувань за допомогою елемента
eternal = "true"
У цьому фрагменті виконана настройка двох кешей, управляе- мих механізмом EHCache. елемент
атрибути елементів
Таблиця 6.8. Атрибути настройки кеша в EHCache