Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment RedisTemplate auto-câblé

Le stacktrace suggère que vous n'avez pas défini le Bean que vous aimeriez utiliser pour l'injection dans RedisTemplate .Vous pouvez le résoudre en créant un fichier de configuration, par exemple

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;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class AppConfig {
 @Bean
 JedisConnectionFactory jedisConnectionFactory() {
  return new JedisConnectionFactory();
 }

 @Bean
 RedisTemplate< String, Long > redisTemplate() {
  final RedisTemplate< String, Long > template =  new RedisTemplate< String, Long >();
  template.setConnectionFactory( jedisConnectionFactory() );
  template.setKeySerializer( new StringRedisSerializer() );
  template.setHashValueSerializer( new GenericToStringSerializer< Long >( Long.class ) );
  template.setValueSerializer( new GenericToStringSerializer< Long >( Long.class ) );
  return template;
 }
}

Une fois que vous avez le fichier de configuration, vous devez le transmettre à SpringApplication.run Par exemple

Object[] sources = {AppConfig.class};
ApplicationContext ctx = SpringApplication.run(sources, args);