Spring Boot Mongodb .yaml 配置

Posted

技术标签:

【中文标题】Spring Boot Mongodb .yaml 配置【英文标题】:Spring boot Mongo DB .yml configuration 【发布时间】:2019-10-15 17:24:21 【问题描述】:

当我使用 mysql 和 hibernate 进行 Spring Boot 时,我在 .yml 文件中使用以下配置

spring:
  datasource:
    url: jdbc:mysql://localhost/userName?zeroDateTimeBehavior=convertToNull
    username: userName
    password: password
    driverClassName: com.mysql.jdbc.Driver

  jpa:
    show-sql: false
    hibernate:
      dialect: org.hibernate.dialect.MySQLDialect
      format_sql: false
      ddl-auto: update 

如果是mongoDB而不是mysql和hibernate怎么改?

【问题讨论】:

【参考方案1】:

你可以这样做:

spring:
  data:
    mongodb:
      uri: mongodb://yourusername:yourpassword@localhost:27017/yourDB

【讨论】:

【参考方案2】:

mongodb 属性都以 spring.data.mongodb 为前缀。对于用户属性,您将使用

spring:
  data:
      mongodb:
        user: test
        password: passwordvalue
        uri: mongodb://host:27017/db

可用的 mongodb 属性列表在这里:

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

您可以在源代码中找到它们在 github 上的加载方式:

https://github.com/spring-projects/spring-boot/blob/v2.1.5.RELEASE/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoProperties.java

【讨论】:

这个答案当时可能是正确的,但它不适用于当前的 Spring 版本。至少指向正确的文档。您不能同时设置 URI 和用户名/密码,它们是互斥的。另外,username 而不是user 是正确的键。 根据 mongo db,用户名和密码仍然被 mongo 在 mongodb uri 中接受:docs.mongodb.com/manual/reference/connection-string 在春季,他们仍然根据文档接受最新版本的凭据:docs.spring.io/spring-boot/docs/current/reference/html/…

以上是关于Spring Boot Mongodb .yaml 配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 获取yaml配置文件信息

Spring Boot - 加载多个 YAML 文件

Spring Boot学习笔记总结

Spring Boot2 系列教程理解Spring Boot 配置文件 application.properties

Spring Boot 配置文件: application.properties和application.yaml

Spring Boot项目的Logback配置文件使用yaml格式