1 添加redis支持
在pom.xml中添加
Xml代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
2 redis配置
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport{
public KeyGenerator wiselyKeyGenerator(){
return new KeyGenerator() {
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();
}
};
}
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;
}
}
3 redis服务器配置
Properties代码
# REDIS (RedisProperties)
spring.redis.database= # database name
spring.redis.host=localhost # server host
spring.redis.password= # server password
spring.redis.port=6379 # connection port
spring.redis.pool.max-idle=8 # pool settings ...
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
- spring.redis.pool.max-wait=-1
4 应用
/**
*
* value 缓存的名称 , keyGenerator = 生成key的方法 , 生成的key字符串 作为 Map中的key
* @param map
* @return
*/
@RequestMapping(value = "/query/querySample", method = RequestMethod.POST)
@ResponseBody
@Cacheable(value = "querySampleCache", keyGenerator = "keyGenerator")
public ModelMap querySample(@RequestParam(required = false) String s_code) {
ModelMap map = new ModelMap();
if (StringUtils.isBlank(s_code)) {
map.addAttribute("code", false);
map.addAttribute("message", "参数为空");
return map;
}
try {
SampleVo sampleVo = sampleManager.getSample(s_code);
map.addAttribute("code", true);
map.addAttribute("message", "查询成功!");
map.addAttribute("data", sampleVo);
} catch (Exception e) {
map.addAttribute("code", false);
map.addAttribute("message", "查询异常!");
}
return map;
}