Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Wie autowired RedisTemplate

Der Stacktrace deutet darauf hin, dass Sie das Bean, das Sie zum Einfügen in RedisTemplate verwenden möchten, nicht definiert haben .Sie können es lösen, indem Sie eine Konfigurationsdatei erstellen, z. B.

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;
 }
}

Sobald Sie die Konfigurationsdatei haben, müssen Sie sie an SpringApplication.run übergeben Z. B.

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