spring集成redis环境搭建(使用@Configuration)

本文详细介绍了如何在Spring项目中集成Redis,通过@Configuration配置方式进行环境搭建,包括必要的依赖添加、Redis连接配置及缓存管理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;

@Configuration
public class RedisSource {


	/**
	 * 关于JedisConnectionFactory的配置:
	 * 	1. 主机与端口号:在配置体系中由RedisStandaloneConfiguration负责设置,在JedisConnectionFactory中有个standaloneConfig字段默认设置了"localhost:6379"的地址
	 * 	2. 用户名与密码:在配置体系中由RedisSentinelConfiguration负责配置,但redis默认可以无需用户登录,所以要配置用户名与密码需要调用JedisConnectionFactory(RedisSentinelConfiguration sentinelConfig)的构造方法
	 *  3. 其他配置:redis的其他配置选项由三层架构构成,分别为:BaseObjectPoolConfig->GenericObjectPoolConfig->JedisPoolConfig
	 *  	实际上在JedisPoolConfig已经将所有配置设置完毕,如果用户需要自定义设置,可以创建JedisPoolConfig实例,也可以创建GenericObjectPoolConfig实例,区别在于JedisPoolConfig可以比GenericObjectPoolConfig多配置四个参数
	 *  	在用户自定JedisPoolConfig之后可以调用new JedisConnectionFactory(JedisPoolConfig)获取工厂实例.
	 *  	而实际上,JedisConnectionFactory有一个内部类MutableJedisClientConfiguration,MutableJedisClientConfiguration中默认创建有JedisPoolConfig的实例
	 *  		如果用户未自定义JedisPoolConfig则JedisConnectionFactory直接使用MutableJedisClientConfiguration中的配置,
	 *  		如果用户自定义了JedisPoolConfig,则MutableJedisClientConfiguration会调用setPoolConfig(GenericObjectPoolConfig poolConfig)方法进行处理,可以注意到,这里的poolconfig实际上是一个GenericObjectPoolConfig
	 * 	4. 总结:
	 * 		要是不进行配置,直接调用JedisConnectionFactory的无参构造即可;
	 * 		如果要设置密码,实例化RedisSentinelConfiguration进行配置;
	 * 		如果要设置主机,实例化RedisStandaloneConfiguration进行配置
	 * 		如果要设置其他项目,实例化JedisPoolConfig进行配置
	 * @return
	 */
	
	@Bean(name="jedisConnectionFactory")
	public JedisConnectionFactory getFactory(){
		return new JedisConnectionFactory();
	}
	
	/**
	 * RedisTemplate本身不提供带有JedisConnectionFactory的有参构造方法,甚至不提供setJedisConnectionFactory()的方法,setJedisConnectionFactory()方法为其父类RedisAccessor提供的
	 * connectionFactory作为RedisAccessor的字段,被RedisTemplate所继承,可以在xml中进行配置
	 * @return
	 */
	@Bean(name="redisTemplate")
	public RedisTemplate<String, Object> getTemplate(){
		RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
		redisTemplate.setConnectionFactory(getFactory());
		return redisTemplate;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值