Spring Boot以及如何将连接细节configuration到MongoDB?
作为Spring Boot的新手我想知道如何为MongoDBconfiguration连接细节。 我已经尝试了正常的例子,但没有涵盖连接的细节。
我想指定要使用的数据库以及运行MongoDB的主机的url / port。
任何提示或提示?
只要引用Boot Docs :
您可以设置
spring.data.mongodb.uri
属性来更改url,或者指定host/port
。 例如,您可以在application.properties
声明以下内容:
spring.data.mongodb.host=mongoserver spring.data.mongodb.port=27017
spring.data.mongodb
前缀的所有可用选项都是spring.data.mongodb
的字段:
private String host; private int port = DBPort.PORT; private String uri = "mongodb://localhost/test"; private String database; private String gridFsDatabase; private String username; private char[] password;
在maven项目中,创build一个文件src/main/resources/application.yml
其中包含以下内容:
spring.profiles: integration # use local or embedded mongodb at localhost:27017 --- spring.profiles: production spring.data.mongodb.uri: mongodb://<user>:<passwd>@<url>:<port>/<dbname>
Spring Boot会自动使用这个文件来configuration你的应用程序。 然后,您可以使用集成configuration文件(并使用本地MongoDB)来启动Spring引导应用程序
java -jar -Dspring.profiles.active=integration your-app.jar
或与生产configuration文件(并使用您的生产MongoDB)
java -jar -Dspring.profiles.active=production your-app.jar
您可以通过扩展AbstractMongoConfiguration来定义更多的细节。
@Configuration @EnableMongoRepositories("demo.mongo.model") public class SpringMongoConfig extends AbstractMongoConfiguration { @Value("${spring.profiles.active}") private String profileActive; @Value("${spring.application.name}") private String proAppName; @Value("${spring.data.mongodb.host}") private String mongoHost; @Value("${spring.data.mongodb.port}") private String mongoPort; @Value("${spring.data.mongodb.database}") private String mongoDB; @Override public MongoMappingContext mongoMappingContext() throws ClassNotFoundException { // TODO Auto-generated method stub return super.mongoMappingContext(); } @Override @Bean public Mongo mongo() throws Exception { return new MongoClient(mongoHost + ":" + mongoPort); } @Override protected String getDatabaseName() { // TODO Auto-generated method stub return mongoDB; } }
如果您使用的是Mongo 3.0 Java驱动程序,则不支持spring.data.mongodb.host
和spring.data.mongodb.port
。 在这种情况下,应该使用spring.data.mongodb.uri
来提供所有的configuration,如下所示:
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345