spring-boot - 尝试对 @autowired 实例进行操作时获取 null,抛出空指针异常

标签 spring-boot autowired spring-data-gemfire geode

我正在尝试使用 CRUD 存储库在 gemfire 上保存数据。我创建了一个操作类来调用存储库的保存方法,但在 Autowiring 实例中我收到空指针异常。下面是我的代码:

public interface GeodeRepository extends CrudRepository<KeyValueBean, String> {

    @Override
    public KeyValueBean findOne(String name);

    @Override
    public <S extends KeyValueBean> Iterable<S> save(Iterable<S> entities);
}

@EnableGemfireRepositories(basePackageClasses = GeodeRepository.class)
@EnableAutoConfiguration
@Configuration
public class Operations {

    @Autowired
    private GeodeRepository repository;

    public void saveKeyValueData(KeyValueBean keyValueBean) {
        System.out.println("Repository is : " + repository);
        repository.save(Arrays.asList(keyValueBean)); // <--- i am getting
                                                        // repository as null so
                                                        // getting null pointer
                                                        // exception
    }
}

最佳答案

当我们@Autowired任何类时,请确保您已将该类声明为@Component

例如:

@Component
public class Operations {

    @Autowired
    private GeodeRepository repository;

    public void saveKeyValueData(KeyValueBean keyValueBean) {
        System.out.println("Repository is : " + repository);
        repository.save(Arrays.asList(keyValueBean)); 
    }
}

并尝试使用@Autowired将Operation类添加到您的类中 您在哪个类中调用 saveKeyValueData() 方法。

关于spring-boot - 尝试对 @autowired 实例进行操作时获取 null,抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607630/

相关文章:

java - Spring boot @ConfigurationProperties 未加载

spring - mock Spring Bean

angular - angular 如何处理多个服务的依赖注入(inject)?

java - Spring Autowiring 依赖,具有构造函数参数

java - 如何定义本地关键 GemFire 区域的持久性?

java - 如何禁用 Spring Actuators 的内容协商?

spring-boot - 使用 Java 和 CloudWatch 触发器安排 AWS-Lambda

java - 在自定义所有存储库中注入(inject) bean

linux - Linux 中的 Spring Data GemFire 服务器 java.net.BindException

microservices - 如何根据其他区域的更改更新 GemFire 区域