Налаштування кешування spring

Незважаючи на те що модуль 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 повинен бути елемент

. Однак, щоб скористатися перевагами підтримки EHCache в Spring Modules, в елемент слід додати об'єк явище простору імен ehcache:

Незалежно від обраного механізму кешування для його на- будівництва будуть використовуватися одні й ті ж елементи конфігурі- вання 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. елемент є орга тільних і описує кеш, який буде використовуватися, коли не буде знайдений більш відповідний кеш. елемент визначає інші кеши і може міститися у файлі ehcache.xml нуль або бо- леї раз (по одному для кожного кеша). Тут визначається тільки один кеш, який використовується не за замовчуванням, - rantzCache.

атрибути елементів і описують поведінку кешей. У табл. 6.8 перераховані атрибути, які можна використо- вувати при налаштуванні кешей в EHCache.

Таблиця 6.8. Атрибути настройки кеша в EHCache

Схожі статті