我尝试使用spring连接到mongohq。我从heroku获得了一些信息,但在使用该代码MongoURI
类时,不推荐使用它。
我使用了spring-data-mongodb
版本1.2.0.RELEASE
。和mongo-java-driver - 2.11.0
任何人都可以告诉你如何使用spring
连接到mongohq或mongolab答案 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 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 >
。完成。