All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lingdonge.redis.configuration.RedisCacheAutoConfiguration Maven / Gradle / Ivy

package com.lingdonge.redis.configuration;

import com.lingdonge.redis.util.RedisConnUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;

/**
 * 构造Redis缓存架构
 */
//@Configuration
@AutoConfigureAfter(RedisBasicAutoConfiguration.class) //在这个配置之后进行加载
@EnableCaching //启用缓存,这个注解很重要;
@Slf4j
public class RedisCacheAutoConfiguration extends CachingConfigurerSupport {

    /**
     * 自定义key.使用默认的容易出现乱码
     * 此方法将会根据类名+方法名+所有参数的值生成唯一的一个key,即使@Cacheable中的value属性一样,key也会不一样。
     * 普通使用普通类的方式的话,那么在使用@Cacheable的时候还需要指定KeyGenerator的名称;这样编码的时候比较麻烦。
     */
    @Override
    public KeyGenerator keyGenerator() {
        log.info("<<<<<<<<<<<<<<< 加载 RedisCacheConfig.keyGenerator自定义生成Key  >>>>>>>>>>>>>>>>>>");
        return RedisConnUtil.getCacheKeyGenerater();
    }

    /**
     * 使用cache注解管理redis缓存
     *
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
        return RedisConnUtil.getCacheManager(redisConnectionFactory);
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy