首页 文章

基于spring boot的项目中的spring data mongodb配置

提问于
浏览
1

我正在使用spring boot编写代码,它将csv作为输入并创建mongodb集合并将其插入mongodb .

目前我坚持在基于spring boot的代码中使用mongodb . 我在MongoRepository接口上使用save方法时得到NullPointerException .

可能这个问题是由于application.yml文件中的配置不正确以下是src / main / resources目录中application.yml中mongodb特定的更改 .

spring:
   data:
      mongodb.host: localhost
      mongodb.port: 27017
      mongodb.uri: mongodb://localhost/test
      mongo.repositories.enabled: true

Application.java文件如下:

@Configuration
@EnableMongoRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration  // Sprint Boot Auto Configuration
@ComponentScan(basePackages = "com.khoubyari.example")
public class Application extends SpringBootServletInitializer {

private static final Class<Application> applicationClass = Application.class;
private static final Logger log = LoggerFactory.getLogger(applicationClass);

public static void main(String[] args) {
    SpringApplication.run(applicationClass, args);
}


@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(applicationClass);
}
}

如果Application.java实现CommandLineRunner并在重写方法运行中编写mongodb插入特定代码,则代码工作正常 . 此代码位于以下URL中:https://spring.io/guides/gs/accessing-data-mongodb/

但是,我的Application.java扩展了SpringBootServletInitializer类并覆盖了configure(SpringApplicationBuilder应用程序)方法 . 请查看上面的Application.java .

我需要在基于spring boot的项目的不同包中的实用程序类中使用相同的db特定代码(就像我在Application.java类中提到的URL相同的代码) .

自定义存储库界面如下:

CustomRepository.java:

public interface CustomRepository extends MongoRepository<CsvPojo, String>{

}

在实用程序类中,我只想注入CustomRepository并使用save方法在mongodb中保存创建的CsvPojo . 但是在执行行customRepository.save(csvPojo)时我正在调整NullPointerException;

请指教!如果需要其他信息,请告诉我!

此致,Shobhit

1 回答

  • 4

    在spring rest controller中调用save方法解决了问题,而不是从实用程序类调用 .

    我只是在控制器中注入CustomRepository接口并使用save方法!

    https://github.com/khoubyari/spring-boot-rest-example学习"About the Service"部分后我得到了解决方案

    我需要在 Spring 季靴子中探索更多,但无论如何问题在上述努力之后得到解决!

相关问题