spring.factories文件里
之后的redis相关自动配置
点进去这个RedisAutoConfiguration看看
两个关注点,一个是RedisProperties.class,是将配置文件中的配置通过setter方法该类中对应属性的值。
另一个是@ConditionalOnMissingBean注解作用在@bean定义上,它的作用就是在容器加载它作用的bean时,检查容器中是否存在目标类型(ConditionalOnMissingBean注解的value值)的bean了,如果存在这跳过原始bean的BeanDefinition加载动作。
在项目中会写自己的redis配置类。
RedisProperties.class
applification.properties里redis相关配置(我的项目里)
配置文件中配置字段与RedisProperties.class类中属性一致的,通过setter方法来设值
redis配置类
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
//注入第三方bean
//实例化bean
RedisTemplate<String,Object> template = new RedisTemplate<>();
//利用template访问数据库,这个template要具备访问数据库的能力,
// 需要创建连接,连接是由连接工厂创建的,所以需要把连接工厂注入给template,才能访问数据库
template.setConnectionFactory(factory);
//配置序列化的方式,因为程序是java程序,得到的数据是java类型的数据,
// 最终要把数据存到redis数据库里,,那么要指定序列化方式
//设置key的序列化方式
template.setKeySerializer(RedisSerializer.string());
//设置value的序列化方式
template.setValueSerializer(RedisSerializer.json());
//设置hash的key的序列化方式
template.setHashKeySerializer(RedisSerializer.string());
//设置hash的value的序列化方式
template.setHashValueSerializer(RedisSerializer.json());
//触发生效
template.afterPropertiesSet();
return template;
}
}