Spring引导和Spring数据REST中的MongoDB配置
我想将MongoDB用于带有spring boot和JPA的MongoDB。。我可以使用嵌入式H2数据库。但我不确定使用mongo db时出了什么问题。在运行应用程序时,我发现数据源丢失的错误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
@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);
}
}