使用弹簧框架连接mongohq或mongolab

时间:2013-11-10 09:11:18

标签: spring mongodb heroku mongohq

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

任何人都可以告诉你如何使用spring

连接到mongohq或mongolab

4 个答案:

答案 0 :(得分: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;
        }
    }

答案 1 :(得分:0)

您可以阅读MongoURI documentation

  

公共课MongoURI      extends Object

     

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

     

此类已被MongoClientURI取代,可能会在将来的版本中弃用。

所以MongoClientURI是你的回答

答案 2 :(得分: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());
    }
}

答案 3 :(得分:0)

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

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

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