स्टैकट्रेस का सुझाव है कि आपने बीन को परिभाषित नहीं किया है जिसका उपयोग आप RedisTemplate
में इंजेक्शन लगाने के लिए करना चाहेंगे। .आप इसे एक कॉन्फ़िगरेशन फ़ाइल बनाकर हल कर सकते हैं, उदा.
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;
}
}
एक बार आपके पास कॉन्फ़िगरेशन फ़ाइल हो जाने के बाद आपको इसे SpringApplication.run
. पर पास करना होगा उदा.
Object[] sources = {AppConfig.class};
ApplicationContext ctx = SpringApplication.run(sources, args);