Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用mongoDB的Spring引导返回NullPointerException_Java_Mongodb_Spring Boot - Fatal编程技术网

Java 使用mongoDB的Spring引导返回NullPointerException

Java 使用mongoDB的Spring引导返回NullPointerException,java,mongodb,spring-boot,Java,Mongodb,Spring Boot,最近,我试着玩MongoDB和Spring Boot 我已经看过很多关于如何操作的教程,但是当我试图将对象插入数据库时遇到了一个问题。 问题是,在中提供的每个教程或答案都暗示我将调用通过REST函数扩展MongoRepo的存储库(因此@Autowire注释将实例化该类)。但是,我的程序不是这样的,因为我需要通过位于不同包中的类来调用store类,该包不是通过restapi调用的。 第一个问题是扫描不同的包。我通过使用baseScanPackages和@EnableMongorPository注释

最近,我试着玩MongoDB和Spring Boot

我已经看过很多关于如何操作的教程,但是当我试图将对象插入数据库时遇到了一个问题。 问题是,在中提供的每个教程或答案都暗示我将调用通过REST函数扩展MongoRepo的存储库(因此@Autowire注释将实例化该类)。但是,我的程序不是这样的,因为我需要通过位于不同包中的类来调用store类,该包不是通过restapi调用的。 第一个问题是扫描不同的包。我通过使用baseScanPackages和@EnableMongorPository注释设法解决了这个问题。我还创建了MongoConfig类,因为后者需要MongoClient实现

但是,每次调用存储对象的类时,都会得到一个NullPointerException。我知道问题在于,由于我通过一个新对象调用该类,而不是Autowire,接口将不会被实例化

我的问题是:是否有一种方法可以实例化扩展MongoRepository的接口,而不必自动连接它

代码如下:

接口

@Repository
public interface TemplateRepository extends MongoRepository<Template,String> {
}
调用save方法的类的构造函数

StoreTemplates storeTemplates;
    /**
     * Constructor.
     * 
     * @param connection
     */
    public TemplateGeneral(Connection connection) {
        super(connection);
        storeTemplates = new StoreTemplates(); <- This will not trigger the @Autowired class
    }
StoreTemplates-StoreTemplates;
/**
*构造器。
* 
*@param连接
*/
公共模板常规(连接){
超级(连接);

storeTemplates=新的storeTemplates()最后一段代码在通过new关键字进行实例化时是不正确的。除非您不允许spring进行注入,这是使用spring的主要目的。我看不到任何直接获取它的方法。

如果您直接将
@Autowired private TemplateRepository TemplateRepository;
放在但我仍然遇到同样的问题。请添加更多关于Mongo DB配置的代码,以及与之相关的数据。如果自动连接存储库不起作用,则可能会弄乱目录结构,Spring不会扫描repo类。请检查存储库是否在Spring扫描的包中。Spring只会自动连接那些是由spring管理的。所以你的实例化不起作用。发布你的完整代码和完整的类实例化。还要解释你想解决什么问题,因为你现在做的事情很奇怪。
StoreTemplates storeTemplates;
    /**
     * Constructor.
     * 
     * @param connection
     */
    public TemplateGeneral(Connection connection) {
        super(connection);
        storeTemplates = new StoreTemplates(); <- This will not trigger the @Autowired class
    }