Stacktrace gợi ý rằng bạn chưa xác định Bean mà bạn muốn sử dụng để đưa vào RedisTemplate
.Bạn có thể giải quyết vấn đề này bằng cách tạo tệp cấu hình, ví dụ:
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;
}
}
Sau khi có tệp cấu hình, bạn cần chuyển tệp đó vào SpringApplication.run
Ví dụ:
Object[] sources = {AppConfig.class};
ApplicationContext ctx = SpringApplication.run(sources, args);