Ehcache realiza un uso simple del caché no distribuido

1. Agregar dependencias

<!--        缓存-->
        <dependency>
            <groupId>org.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>

2. Archivo de configuración ehcache.xml

<?xml version="1.0" encoding="UTF-8" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.ehcache.org/v3"
        xsi:schemaLocation="http://www.ehcache.org/v3
        http://www.ehcache.org/schema/ehcache-core.xsd"
>
<!--    <persistence directory="/home/app/ehcache"/>-->
<!--    缓存设置,堆、堆外、磁盘,如果要实现堆外内存和磁盘存储,则必须实现序列化 -->
    <cache-template name="common">
        <key-type>java.lang.String</key-type>
        <value-type>java.lang.Object</value-type>
        <resources>
            <heap>10000</heap>
<!--            <offheap unit="MB">50</offheap>-->
<!--            <disk unit="GB" persistent="true">1</disk>-->
        </resources>
    </cache-template>
<!--    存放token,7天失效-->
    <cache alias="token" uses-template="common">
        <expiry>
<!--            ttl七天必过期,tti七天空闲过期-->
            <ttl unit="days">7</ttl>
        </expiry>

    </cache>
<!--    默认缓存,永不过期-->
    <cache alias="default" uses-template="common">
        <expiry>
            <none/>
        </expiry>
    </cache>
</config>

3. Herramientas de caché

package com.example.jiakao.common.ehcache;

import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.Configuration;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.xml.XmlConfiguration;

import java.net.URL;

public class Caches {
    private static final CacheManager MGR;
    private static final Cache<String,Object> DEFAULT_CACHE;
    private static final Cache<String,Object> TOKEN_CACHE;
    static {
//        初始化缓存管理器
        URL url = Caches.class.getClassLoader().getResource("config/ehcache.xml");
        assert url != null;
        Configuration cfg = new XmlConfiguration(url);
        MGR = CacheManagerBuilder.newCacheManager(cfg);
//        CacheManager实例只有经过初始化后才能执行获取缓存对象、创建缓存对象
        MGR.init();
//        缓存对象
        DEFAULT_CACHE = MGR.getCache("default", String.class,Object.class);
        TOKEN_CACHE = MGR.getCache("token", String.class,Object.class);
    }
    public static <T> void put(String key, T value){
        DEFAULT_CACHE.put(key,value);
    }
    public static void remove(String key){
        DEFAULT_CACHE.remove(key);
    }
    public static <T> T get(String key) {
        return (T)DEFAULT_CACHE.get(key);
    }
    public static void clear(){
        TOKEN_CACHE.clear();
    }
    public static <T> void putToken(String key, T value){
        TOKEN_CACHE.put(key,value);
    }
    public static void removeToken(String key){
        TOKEN_CACHE.remove(key);
    }
    public static <T> T getToken(String key) {
        return (T)TOKEN_CACHE.get(key);
    }
    public static void clearToken(){
        TOKEN_CACHE.clear();
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_33235279/article/details/130577067
Recomendado
Clasificación