30.2.1. 连接MongoDB数据库

你可以注入一个自动配置的org.springframework.data.mongodb.MongoDbFactory来访问Mongo数据库。默认情况下,该实例将尝试使用URL mongodb://localhost/test连接到MongoDB服务器:

  1. import org.springframework.data.mongodb.MongoDbFactory;
  2. import com.mongodb.DB;
  3. @Component
  4. public class MyBean {
  5. private final MongoDbFactory mongo;
  6. @Autowired
  7. public MyBean(MongoDbFactory mongo) {
  8. this.mongo = mongo;
  9. }
  10. // ...
  11. public void example() {
  12. DB db = mongo.getDb();
  13. // ...
  14. }
  15. }

你可以设置spring.data.mongodb.uri来改变该url,并配置其他的设置,比如副本集:

  1. spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test

另外,跟正在使用的Mongo 2.x一样,你可以指定host/port,比如,在application.properties中添加以下配置:

  1. spring.data.mongodb.host=mongoserver
  2. spring.data.mongodb.port=27017

Mongo 3.0 Java驱动不支持spring.data.mongodb.hostspring.data.mongodb.port,对于这种情况,spring.data.mongodb.uri需要提供全部的配置信息。

如果没有指定spring.data.mongodb.port,默认使用27017,上述示例中可以删除这行配置。

如果不使用Spring Data Mongo,你可以注入com.mongodb.Mongo beans以代替MongoDbFactory

如果想完全控制MongoDB连接的建立过程,你可以声明自己的MongoDbFactoryMongo bean。 如果想全面控制MongoDB连接的建立,你也可以声明自己的MongoDbFactory或Mongo,@Beans。