Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 Spring引导MongoDB配置_Java_Spring_Mongodb_Maven_Spring Boot - Fatal编程技术网

Java Spring引导MongoDB配置

Java Spring引导MongoDB配置,java,spring,mongodb,maven,spring-boot,Java,Spring,Mongodb,Maven,Spring Boot,我是新手,我尝试用JavaSpring引导开发一个API。 我对MongoDB配置有问题,在另一个项目中也没有问题。我不明白为什么。 我已经看过了,但提出的解决方案不起作用 SBApplication.java: package basket; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; impo

我是新手,我尝试用JavaSpring引导开发一个API。 我对MongoDB配置有问题,在另一个项目中也没有问题。我不明白为什么。 我已经看过了,但提出的解决方案不起作用

SBApplication.java:

package basket;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication (scanBasePackages = { "basket.instrastructure.dao" })
@EnableSwagger2
@EnableAutoConfiguration //(exclude={MongoAutoConfiguration.class, MongoRepositoriesAutoConfiguration.class})
public class SBApplication {

    public static void main(String[] args) {
        SpringApplication.run(SBApplication.class, args);
    }
}
BasketRepository.java:

package basket.infrastructure.dao;

import java.util.ArrayList;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import basket.domaine.model.Basket;

@Repository 
public interface BasketRepository extends MongoRepository<Basket, Long> {

    public ArrayList<Basket> findAll();
    public Basket findById(String id);    
}
package basket.infrastructure.dao;

import java.util.ArrayList;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import basket.domaine.model.Item;


@Repository
public interface ItemRepository extends MongoRepository<Item, Long> {
    public Item findByName(String name);
    public ArrayList<Item> findAll();
    public Item findById(String id);
}
我有这个错误

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.4.2.jar:na]
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115) ~[mongodb-driver-core-3.4.2.jar:na]
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113) ~[mongodb-driver-core-3.4.2.jar:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_181]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_181]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_181]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_181]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_181]
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_181]
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) ~[mongodb-driver-core-3.4.2.jar:na]
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.4.2.jar:na]
    ... 3 common frames omitted
你能帮我理解我的错误吗。
谢谢,非常感谢您的帮助

您确定您的MongoDB URI吗?通常,URI的形式为
mongodb://localhost:27017/foo


如果您使用springboot而不是使用配置bean,我建议您使用application.properties文件。在这个文件中,编写一个类似
spring.data.mongodb.uri的属性=mongodb://localhost:27017/foo
Spring boot自动注入MongoClient中的属性,而无需在代码级别进行任何配置。

如@Federico Gatti所说,通过配置MongoIUth属性文件:

spring.data.mongodb.database=MongoDatabaseName
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017

您忘了在urlI中添加端口。我将使用application.porperties文件进行测试。我有一个项目,在其中我没有遇到任何问题,但我使用DDD体系结构进行了重新定义。现在我有问题了。数据库位于服务器mongoDB上。在文档中,我可以使用:MongoClientURI=newmongoclienturi(“mongodb”)连接到数据库+srv://kay:myRealPassword@cluster0.mongodb.net/”;MongoClient MongoClient=新的MongoClient(uri);MongoDatabase=mongoClient.getDatabase(“测试”);
spring.data.mongodb.database=MongoDatabaseName
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017