1

我尝试使用 spring 连接到 mongohq。我从heroku获得了一些信息,但是在连接该代码MongoURI类时已弃用。我用过spring-data-mongodb版本1.2.0.RELEASE。和mongo-java-driver - 2.11.0

谁能告诉如何使用spring连接到mongohq或mongolab

4

4 回答 4

3

听说是密码。。

@Configuration
    public class SpringConfig {
        @Bean
        public DB getDb() throws UnknownHostException, MongoException {
            String uri="mongodb://user:password@id.mongolab.com:53178/db";
            MongoClientURI mongoClientURI=new MongoClientURI(uri);
            MongoClient mongoClient=new MongoClient(mongoClientURI);
            DB db=mongoClient.getDB(mongoClientURI.getDatabase());
            db.authenticate(mongoClientURI.getUsername(),mongoClientURI.getPassword());
            return db;
        }
    }
于 2013-11-10T11:07:52.513 回答
0

如果您使用的是 Spring Boot,则“MongoProperties”类只是在等待外部配置:

使用“heroku config”,您可以看到已经定义的属性 - 如果将 MongoLab 添加到您的应用程序中,将会有一个“MONGOLAB_URI”。

只需定义:heroku config:set spring.data.mongodb.uri=< MONGOLAB_URI >。完毕。

于 2015-02-25T14:18:29.277 回答
0

正如您在MongoURI 文档中所读到的那样

公共类 MongoURI 扩展对象

表示可用于创建 Mongo 实例的 URI。URI 描述了要使用的主机和选项。

此类已被 MongoClientURI 取代,并且可能在未来的版本中被弃用。

所以MongoClientURI是你的答案

于 2013-11-10T10:11:12.840 回答
0

如果您将 mongodb 与Spring Data Mongodb 一起使用,则可以使用http://docs.spring.io/spring-data/data-mongo/docs/1.4.1.RELEASE/reference/html/mongo.core中描述的配置。 html#mongo.mongo-db-factory-java

它最终看起来像:

@Configuration
public class MongoHQConfiguration {

    public @Bean MongoDbFactory mongoDbFactory() throws MongoException, UnknownHostException {
        return new SimpleMongoDbFactory(new MongoURI(System.getenv("MONGOHQ_URL")));
    }

    public @Bean MongoTemplate mongoTemplate() throws Exception {
        return new MongoTemplate(mongoDbFactory());
    }
}
于 2014-03-28T12:26:05.723 回答