介绍
这篇文章主要介绍了SpringBoot复述,缓存数据的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
SpringBoot是什么
SpringBoot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
1。启用对缓存的支持
春对缓存的支持有两种方式:
。注解驱动的缓存
b.XML声明的缓存
本文主要介绍纯Java配置的缓存,那么必须在配置类上添加@EnableCaching,这样的话就能启动注解驱动的缓存。
2。使用复述,缓存
缓存的条目不过是一个键值对(键值),其中关键描述了产生价值的操作和参数,因此会很自然的想到复述。
复述,可以用来为srp缓存抽象机制缓存条目,Spring-Data-Redis提供了RedisCacheManager,这是缓存管理器的一个实现.RedisCacheManager会与复述,服务器协作,通过RedisTemplate将缓存条目储存到复述中。
为了使用RedisCacheManager,我们需要RedisTmeplate豆配置以及RedisConnectionFactory实现类(JedisConnectionFactory Bean配置).
3 .配置将缓存条目存储在复述,服务器的缓存管理器。
前提需要在砰的一声。xml引入
& lt; !——redis ——比; & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-data-redis & lt;/dependency>
在应用程序。属性中配置复述,连接相关参数
#配置复述 #在RedisProperties.class有复述的默认配置,默认主人为localhost,默认端口为6379 spring.redis.host=127.0.0.1 spring.redis。端口=6379
配置缓存管理器
package com.niugang; import java.lang.reflect.Method; import org.springframework.cache.CacheManager; 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.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.annotation.JsonAutoDetect; @ configuration//没有@EnableCaching这个注解的话,代码不会报的错,就是内容不会放入复述中 @EnableCaching public class  RedisConfig {/* * *,緩存管理器,不管用什么的缓存,都必须有缓存管理器 */@ bean public CacheManager 缓存管理器(),{ RedisCacheManager RedisCacheManager =, new RedisCacheManager (redisTemplate ());/* *,设置缓存保留的时间,默认是永久保存 */redisCacheManager.setDefaultExpiration (60); return redisCacheManager; } @ bean public JedisConnectionFactory  jedisConnectionFactory (), { JedisConnectionFactory JedisConnectionFactory =, new JedisConnectionFactory (); jedisConnectionFactory.afterPropertiesSet (); return jedisConnectionFactory; } ,,/* * *,复述,默认对象序列化是通过jdk来序列化的,这里面不用默认序列化方式,用JackJson进行序列化 *, *,设置关键的类型为字符串类型 *, *,@return */@ bean @SuppressWarnings ({,“rawtypes",,“unchecked",}) public RedisTemplate<字符串,String>, redisTemplate (), { 字符串,RedisTemplate, redisTemplate =, new RedisTemplate<字符串,,String> (); redisTemplate.setConnectionFactory (jedisConnectionFactory ()); ,,,,//,使用Jackson2JsonRedisSerialize 替换默认序列化 Jackson2JsonRedisSerializer Jackson2JsonRedisSerializer =, new Jackson2JsonRedisSerializer (Object.class); ObjectMapper ObjectMapper =, new objectmap (); objectMapper.setVisibility (PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.enableDefaultTyping (ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper (objectmap);//,设置值的序列化规则和,关键的序列化规则 redisTemplate.setValueSerializer (jackson2JsonRedisSerializer); redisTemplate.setKeySerializer (new StringRedisSerializer ()); redisTemplate.afterPropertiesSet (); return redisTemplate; }/* * ,,*,生产关键的策略 ,,* @return ,,*/@Bean public 才能;KeyGenerator  wiselyKeyGenerator () {, ,,,return new KeyGenerator (), {, ,,,,,@Override ,,,,,public Object 生成(目标,Object Method 方法,对象…,params), {, ,,,,,,,StringBuilder sb =, new StringBuilder (),, ,,,,,,,sb.append (target.getClass () . getname ()),, ,,,,,,,sb.append (method.getName ()),, ,,,,,,,for (Object obj : params), {, ,,,,,,,,,sb.append (obj.toString ()),, null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null SpringBoot复述,缓存数据的示例分析