非XML方式 部署redis缓冲 及自定义键值的方法如何在spring中声明它

来源:互联网 发布:windows 10 mobile安卓 编辑:程序博客网 时间:2024/06/08 16:13
先在spring默认application.xml中声明这个bean<bean id="redisCacheConfig " class="x.xx.xxx.RedisCacheConfig "></bean>
/** * File Name:RedisCacheConfig.java * * Copyright Defonds Corporation 2015  * All Rights Reserved * */package com.defonds.bdp.cache.redis;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.connection.jedis.JedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import java.lang.reflect.Method;/** *  * Project Name:bdp  * Type Name:RedisCacheConfig  * Type Description: *  Author:Defonds * Create Date:2015-09-21 *  * @version *  */@Configuration@EnableCachingpublic class RedisCacheConfig extends CachingConfigurerSupport {@Beanpublic JedisConnectionFactory redisConnectionFactory() {JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();// DefaultsredisConnectionFactory.setHostName("192.168.1.102");<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">// 注意是服务器地址</span>redisConnectionFactory.setPort(6379); <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">// 注意这是固定死的,redis默认端口就是6379</span>return redisConnectionFactory;}@Beanpublic RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) {RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();redisTemplate.setConnectionFactory(cf);return redisTemplate;}@Beanpublic CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);// Number of seconds before expiration. Defaults to unlimited (0)cacheManager.setDefaultExpiration(3000); // Sets the default expire time (in seconds)return cacheManager;}@Beanpublic KeyGenerator customKeyGenerator() {return new KeyGenerator() {@Overridepublic Object generate(Object o, Method method, Object... objects) {StringBuilder sb = new StringBuilder();sb.append(o.getClass().getName());sb.append(method.getName());for (Object obj : objects) {sb.append(obj.toString());}return sb.toString();}};}}


0 0
原创粉丝点击