弹簧数据mongodb配置在基于spring boot的项目中
我正在编写带有弹簧引导的代码,它将csv作为输入并创建mongodb集合并将其插入到mongodb中。弹簧数据mongodb配置在基于spring boot的项目中
目前我坚持在基于spring启动的代码中使用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的插入overrided方法运行特定代码,代码工作正常。此代码可在以下URL中找到:
但是,我的Application.java扩展了SpringBootServletInitializer类并覆盖了configure(SpringApplicationBuilder应用程序)方法。请看上面的我的Application.java。
我需要在我的基于spring引导项目的不同包中存在的工具类中使用相同的db特定代码(如同上面在Application.java类中提到的那样的代码)。
自定义库界面如下:
CustomRepository.java:
public interface CustomRepository extends MongoRepository<CsvPojo, String>{
}
在实用工具类,我只是想注入CustomRepository和使用Save方法保存创建CsvPojo在MongoDB中。但我在执行行customRepository.save(csvPojo)时引发NullPointerException;
请建议!如果需要其他信息,请告诉我!
问候, Shobhit
调用保存在弹簧安置控制器方法从实用类调用代替解决了问题。
我只是在控制器中注入CustomRepository接口并使用save方法!
我得到了解决,从https://github.com/khoubyari/spring-boot-rest-example
我需要在春季启动发掘更多学习“关于服务”部分之后,但不管怎么说问题后,上面贴的努力解决了!
首先你为什么'Application'类扩展'SpringBootServletInitializer'?其次,请显示您用于自定义实用程序类的代码 – geoand 2014-10-31 06:50:43
您无法注入实用程序类(我怀疑该类不是弹簧管理的,或者您有试图注入的“静态”字段)。同样在你的配置中,你可以删除'@EnableMongoRepositories'和'@Import(RepositoryRestMvcConfiguration.class)',当检测到相应的Spring Data MongoDB和Spring Data Rest时,Spring Boot自动添加这些。另外,如果您的'Application'类位于'com.khoubyari.example'包中,您可以执行'@ ComponentScan'。 – 2014-10-31 08:15:52