Основанный на Spring Boot аннотациях кэширования с встроенным легковесным менеджером кэша.
@Cache
— это более легковесное кэширование по сравнению с Spring Cache
, которое поддерживает установку времени жизни для каждого отдельного кэша и удаление кэша по префиксу ключа.
Использует fastjson
для сериализации и десериализации данных, хранящихся в виде JSON-строк в кэше.
ace-cache
можно быстро использовать в повседневной работе с Spring Boot приложениями.
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-cache</artifactId>
<version>1.0.0</version>
</dependency>
application.yml
# Для версий 1.0.0 рекомендовано использование конфигурации Spring Redis
spring:
redis:
database: 0
host: localhost
timeout: 2000
sysName: ace # По умолчанию используется префикс ключей
enable: true # Включение/выключение ace-cache
userkey: # Уникальный идентификатор пользователя, хранящийся в cookie или request header
lettuce:
pool:
max-active: 300
min-idle: 100
max-wait: 1000
# НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ ЭТОТ КОНФИГУРАЦИОННЫЙ ОБЪЕКТ, он используется в версиях ниже 0.0.2
redis:
pool:
maxActive: 300
maxIdle: 100
maxWait: 1000
host: 127.0.0.1
port: 6379
password:
timeout: 2000
# Имя сервиса или приложения
sysName: ace
enable: true
database: 0
@EnableAceCache
```## Использование кэша
3. Аннотировать Service @Cache или @CacheClear
# Описание аннотаций
## Настройка кэша: @Cache
Параметр аннотации | Тип | Описание
------------- |------------- | -----
key | String | Выражение для вычисления ключа кэша
expires | Integer | Время жизни кэша, минуты
desc | String | Описание кэша
scope | Enum | Область действия кэша (сессия или приложение)
parser | Class<? extends ICacheResultParser> | Класс для обработки результата кэша
generator | Class<? extends IKeyGenerator> | Класс для генерации ключа кэша
result | Class<?>[] | Класс для типа результата кэша, по умолчанию берется первый тип
## Очистка кэша: @CacheClear
Параметр аннотации | Тип | Описание
------------- |------------- | -----
pre | String | Префикс ключа для очистки кэша
key | String | Ключ для очистки кэша
keys | String[] | Массив ключей для очистки кэша
generator | Class<? extends IKeyGenerator> | Класс для генерации ключа кэша
## Глобальный распределенный замок: @CacheGlobalLock
Параметры аннотации | Тип | Описание
------------- | ------------- | -------------
key | String | Выражение ключа для распределенного замка
retry | Integer | Интервал времени повторной попытки получения замка, в миллисекундах
waitLock | boolean | Ждать глобального замка до тех пор, пока он не будет получен? По умолчанию — нет, если замок не получен, программа не выполняется.
generator | Class<? extends IKeyGenerator> | Пользовательский сгенерированный класс для ключей кэша## Примеры динамического выражения ключа по умолчанию
Пример выражения | Описание | Пример
------------- | ------------- | -------------
@Cache(key="user:{1}")<br>public User getUserByAccount(String account) | {1} представляет собой получение значения первого параметра<br>{2} представляет собой получение значения второго параметра<br>... и так далее | Если account = ace, то key = user:ace
@CacheClear(pre="user{1.account}")<br>User saveOrUpdate(User user)|{1} представляет собой получение значения первого параметра<br>{1.xx} представляет собой получение атрибута xx из первого параметра|Если account=ace, то key = user:ace
# Легковесный менеджер
Адрес доступа: http://localhost:8080/cache
<br>Менеджер позволяет выполнять массовое удаление или очистку кэша по префиксу для кэшей, зарегистрированных в ace-cache, также можно быстро просматривать содержимое кэша, а также продлевать время жизни кэша.

# Пример
1. Раскрытие примеров кода в src/main/test
> CacheTest является основным запускающим классом
>> пакет service содержит примеры вызова кэширования, включая использование пользовательских выражений и анализа результатов, а также использования аннотаций
# 22 мая 2017 года
Первый выход перед вами, прошу указаний!
# 23 мая 2017 года Поддержка шаблона Spring MVC## Конфигурационные файлы
### application.properties
```properties
redis.pool.maxActive = 300
redis.pool.maxIdle = 100
redis.pool.maxWait = 1000
redis.host = 127.0.0.1
redis.port = 6379
redis.password =
redis.timeout = 2000
redis.database = 0
redis.sysName = ace
redis.enable = true
```### applicationContext.xml
```xml
<!-- beans header -->
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
<!-- Включение конфигурации AOP -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<context:component-scan base-package="com.ace.cache"/>
<context:annotation-config/>
<properties>
<!-- Spring -->
<spring.version>4.1.3.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
Способ использования аналогичен способу использования Spring Boot — аннотациями непосредственно в методах.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )