Spirng+redis 2、实现RedisConfiguration
来源:互联网 发布:经传多盈软件 编辑:程序博客网 时间:2024/06/06 07:18
1、通过继承CachingConfigurerSupport,将Spring-Cache的缓存换为Redis
2、使用适合项目的key生成策略cacheKeyGenerator
package com.example.demo.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.cache.CacheManager;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.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheManager;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;import java.lang.reflect.Method;@Configuration@EnableCachingpublic class RedisConfiguration extends CachingConfigurerSupport { @Bean public KeyGenerator cacheKeyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } @Bean public CacheManager cacheManager(@SuppressWarnings("rawtypes") RedisTemplate redisTemplate) { return new RedisCacheManager(redisTemplate); } @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; }}
通过Jackson2JsonRedisSerializer对 需要缓存的对象进行序列化操作
阅读全文
1 0
- Spirng+redis 2、实现RedisConfiguration
- spirng+redis 发布订阅
- spirng整合redis (二)
- Spirng Aware接口实现
- tomcat + jta +spirng (2)
- Spirng Acegi 身份认证连载2
- 用注解的方式来实现SPIRNG视图转换
- Redis教程{2}redis设计与实现
- spirng Framework
- Spirng 学习心得
- spirng 乱码
- spirng mvc
- spirng配置
- Redis 字典的实现(2)
- 分布式锁-redis实现(2)
- spirng-boot中,基于既有的token验证方式,利用spring-security实现权限系统
- maven profile 结合spirng注解使用——实现配置文件最小化
- maven profile 结合spirng注解使用——实现配置文件最小化(二)
- ssh-port-redirect-in-linux-system
- 解决sql查询时间缺失
- centos 如何关闭防火墙?
- 函数
- js中数组的基本操作
- Spirng+redis 2、实现RedisConfiguration
- 通过commons-fileupload实现文件上传
- SSO单点登录初探
- 技术方向的选择
- android5.1 增加ethernet设置(DHCP与Static ip)
- springmvc登录拦截器访问报错 SyntaxError: expected expression, got '<'
- 使用OAuth2的SSO分析
- 大数模板
- RocketMQ实战 (一)