Java for Beginner
677 subscribers
560 photos
156 videos
12 files
860 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Введение в кеширование в Spring

Кеширование (caching) – это техника оптимизации производительности, которая позволяет сохранять результаты вычислений или запросов для их повторного использования, избегая лишних операций. В Spring кеширование реализуется просто и эффективно благодаря интеграции с Spring Cache.

Как работает кеширование?

При запросе данных приложение сначала проверяет, есть ли результат в кеше:
Если данные найдены, они возвращаются напрямую из кеша.
Если данных нет, выполняется вычисление (или запрос к базе данных), результат сохраняется в кеше и возвращается пользователю.


Spring Cache – основы

Spring Cache предоставляет аннотации и интерфейсы для простого внедрения кеширования.

Основные компоненты:
Кеш-менеджер (Cache Manager) – отвечает за создание и управление кешами.
Аннотации – для указания, какие методы или результаты кешировать.


Spring поддерживает различные провайдеры кеша, например:
ConcurrentMapCache (в памяти, по умолчанию),
Ehcache,
Redis,
Caffeine.


Подключение кеша в Spring

Для начала нужно включить кеширование в вашем приложении:

@Configuration
@EnableCaching // Включаем поддержку кеширования
public class CacheConfig {
// Конфигурация кеша, если требуется (например, Redis или Ehcache)
}


Создадим сервис, который возвращает данные из базы:
@Service
public class DataService {
public String getDataById(Long id) {
// Имитация долгого выполнения, например, запроса к БД
try {
Thread.sleep(2000); // Задержка 2 секунды
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Data for ID: " + id;
}
}


Теперь добавим кеш:
@Service
public class CachedDataService {
@Cacheable("dataCache") // Кешируем результат метода
public String getDataById(Long id) {
// Имитация долгого выполнения
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Cached data for ID: " + id;
}
}


#Java #Training #Spring #Caching