Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Spring引导和Spring数据REST中的MongoDB配置_Spring_Mongodb_Spring Data_Spring Boot_Spring Data Rest - Fatal编程技术网

Spring引导和Spring数据REST中的MongoDB配置

Spring引导和Spring数据REST中的MongoDB配置,spring,mongodb,spring-data,spring-boot,spring-data-rest,Spring,Mongodb,Spring Data,Spring Boot,Spring Data Rest,我想将MongoDB用于带有spring boot和JPA的MongoDB。。我可以使用嵌入式H2数据库。但我不确定使用mongo db时出了什么问题。在运行应用程序时,我发现数据源丢失的错误 @EnableAutoConfiguration @EnableJpaRepositories(basePackages = "com..........repo") @EnableWebMvc @Configuration @ComponentScan @Import({ SpringMongoConf

我想将MongoDB用于带有spring boot和JPA的MongoDB。。我可以使用嵌入式H2数据库。但我不确定使用mongo db时出了什么问题。在运行应用程序时,我发现数据源丢失的错误

@EnableAutoConfiguration
@EnableJpaRepositories(basePackages = "com..........repo")
@EnableWebMvc
@Configuration
@ComponentScan
@Import({ SpringMongoConfig.class, RepositoryRestMvcConfiguration.class })
public class Bootstrap extends SpringBootServletInitializer {

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

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


对于初学者来说,使用框架Spring Boot将对其检测到的框架进行自动配置。这包括Spring数据JPA和Spring数据Mongo。因此,您可以删除它的
@Enable
注释

SpringMVC和SpringDataREST也是如此

要允许Spring引导配置Spring Mongo,请向应用程序添加以下属性。属性

spring.data.mongodb.host= # the db host
spring.data.mongodb.port=27017 # the connection port (defaults to 27107)
或者

spring.data.mongodb.uri=mongodb://localhost/test # connection URL
有关Spring Boot Mongo支持的更多信息,请参阅《Spring Boot参考指南》的第页

当不使用嵌入式数据源时,您必须指定用于此操作的驱动程序,并将以下属性添加到您的
应用程序中。属性
。这也记录在Spring Boot参考指南的第1部分中

spring.datasource.driverClassName=your.driver.class

我建议将
引导类移动到顶级包中,并删除所有不需要的注释和配置文件

@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Bootstrap extends SpringBootServletInitializer {

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

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
       return application.sources(Bootstrap.class);
   }
}
应该足以引导整个应用程序,包括jpa、mongo和web支持


对于一个相当完整的列表,我建议使用Spring引导参考指南。

在进行指定的更改并使用以下属性将application.properties添加到类路径后,也会引发相同的异常<代码>spring.data.mongodb.uri=mongodb://localhost:27017/test spring.datasource.drivercassname=com.mongodb.Mongo
读取并再次读取。数据源需要您的JDBC驱动程序,而不是MongoDB。
net.sf.mongojdbcdriver mongojdbcdriver 0.0.2
我添加并
spring.datasource.driverClassName=net.sf.MongoDB\u JDBC\u驱动程序。MongoDbDriver
异常仍然是一样的。您到底想做什么?您想使用Mongo客户端还是将MongoDB用作JDBC客户端?正如我最初解释的,问题是您希望使用Mongoclient和JPA实体。然而,情况似乎并非如此。(我也怀疑例外情况是否仍然相同。)好的,应用程序是这样运行的。这是一个web应用程序,我想在其中使用MongoDB来执行所有CRUD操作,这些操作都作为RESTAPI公开。我在试验SpringBoot、SpringDataREST和JPA。问题是,它适用于嵌入式h2数据库。但我不想使用嵌入式h2数据库在mongodb上执行CRUD操作。我遵守了你发布的指示。例外情况并没有改变。不知道我错过了什么。
spring.data.mongodb.uri=mongodb://localhost/test # connection URL
@EnableAutoConfiguration
@Configuration
@ComponentScan
public class Bootstrap extends SpringBootServletInitializer {

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

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