“线程中的异常”;“主要”;使用redis的spring应用程序中的java.lang.NullPointerException
我有一个带有redis的java应用程序,它抛出了异常 这里有课程。 主要类别:“线程中的异常”;“主要”;使用redis的spring应用程序中的java.lang.NullPointerException,java,spring,exception,Java,Spring,Exception,我有一个带有redis的java应用程序,它抛出了异常 这里有课程。 主要类别: public class App { public static void main( String[] args ) { ManipulatingData manData = new ManipulatingData(); manData.addData(); } } 应用程序配置: /* * To change this template, choose To
public class App {
public static void main( String[] args ) {
ManipulatingData manData = new ManipulatingData();
manData.addData();
}
}
应用程序配置:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.mycompany.springredisdatabook;
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.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class ApplicationConfig {
@Bean
public JedisConnectionFactory connectionFactory() {
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
connectionFactory.setHostName("localhost");
connectionFactory.setPort(6379);
return connectionFactory;
}
@Bean
public StringRedisTemplate redisTemplate() {
StringRedisTemplate redisTemplate = new StringRedisTemplate();
redisTemplate.setConnectionFactory(connectionFactory());
return redisTemplate;
}
@Bean
public RedisTemplate<String, Long> longTemplate() {
StringRedisSerializer STRING_SERIALIZER = new StringRedisSerializer();
RedisTemplate<String, Long> redisTemplate = new RedisTemplate<String, Long>();
redisTemplate.setConnectionFactory(connectionFactory());
redisTemplate.setKeySerializer(STRING_SERIALIZER);
redisTemplate.setValueSerializer(LongSerializer.INSTANCE);
return redisTemplate;
}
}
那么,这是什么?我不知道。我正在使用spring,顺便说一句,您的
redisTemplate
实例为空。检查spring.xml以了解redisTemplate
的配置以及导致其为空的可能性,这是异常。第25行是什么?@NikolayKuznetsov有趣但真实的redistemplate.opsForSet().add(“k”+i,“v”+i);这是25号线这个问题解决了吗?如果是,你能写下你的发现吗?…从我的计算中,第25行是redisTemplate.optsforvalue().getOperations().delete(键)代码>我在ApplicationConfig类中定义了bean,我没有使用xml注释。检查了大约1000000次:)我病了,累了,这就是为什么我在这里问这个问题:)你完整的堆栈跟踪可能会有帮助这个堆栈跟踪是完整的:)
package com.mycompany.springredisdatabook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
public class ManipulatingData {
public ManipulatingData() {}
@Autowired
StringRedisTemplate redisTemplate;
public void addData() {
double start = System.currentTimeMillis();
for (int i=1; i<=1000; i++) {
redisTemplate.opsForSet().add("k" + i, "v" + i);
}
double end = System.currentTimeMillis();
System.out.println("Add data time: " + (end-start));
}
public String getData (String key) {
return redisTemplate.opsForValue().get(key);
}
public void deleteData(String key) {
redisTemplate.opsForValue().getOperations().delete(key);
}
}
Exception in thread "main" java.lang.NullPointerException
at com.mycompany.springredisdatabook.ManipulatingData.addData(ManipulatingData.java:25)
at com.mycompany.springredisdatabook.App.main(App.java:11)
Java Result: 1