spring - application.properties 和 application.yml 可以混合吗?

标签 spring mongodb amazon-ec2 spring-boot

使用spring-boot版本1.2.5

在开发过程中,我尝试将我的应用程序默认使用通过 vagrant 本地托管的 mongo 数据库

./gradlew bootrun

在 aws 中,我想使用托管在 ec2 实例上的 mongo 数据库

jar -jar my.jar -Dspring.profiles.active=aws

应用程序属性

spring.profiles.active=development

application.yml

spring:
    profiles: development
    data:
        mongodb:
            host: 10.11.12.13
            port: 27017
---
spring:
    profiles: aws
    data:
        mongodb:
            host: ec2-xyz.compute-1.amazonaws.com
            port: 27017

但是,在开发中运行时,mongo 会尝试连接 localhost:27017 (这是默认的 spring-mongo 行为)

编辑:实际上,我认为这是有效的。我不确定最初导致错误的原因

编辑:我也可以将所有这些移动到 YAML 文件中

最佳答案

我原来的解决方案实际上是正确的。

我最终将 application.properties 移至 application.yml

application.yml

spring:
    profiles:
        active: development
---
spring:
    profiles: development
    data:
        mongodb:
            host: 10.11.12.13
            port: 27017
---
spring:
    profiles: aws
    data:
        mongodb:
            host: ec2-x-y-z-a.compute-1.amazonaws.com
            port: 27017

开发配置文件可以设为“默认”

默认使用开发配置的application.yml

spring:
    data:
        mongodb:
            host: 10.11.12.13
            port: 27017
---
spring:
    profiles: aws
    data:
        mongodb:
            host: ec2-x-y-z-a.compute-1.amazonaws.com

关于spring - application.properties 和 application.yml 可以混合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970576/

相关文章:

node.js - mongodb 和 EventEmitter 之间的问题

mongodb - 在 Kubernetes 中访问 Mongodb

python - 在ubuntu EC2深度学习实例中通过jupyter笔记本从s3读取数据

amazon-ec2 - 在 Amazon EC2 中远程运行 JMeter 时出错

spring - 将 spring-batch-admin 集成到现有的 spring boot 后无法导入属性

java - 使用 Spring 连接不在列表中实现标记接口(interface)的 bean

java - 什么是基于接口(interface)的代理?

spring - 无法启动 springboot 管理,java.lang.NoClassDefFoundError : org/springframework/cloud/netflix/zuul/filters/TraceProxyRequestHelper

mongodb - 指向无效属性-MongoDB&Grails 3.3+

amazon-web-services - aws-cli 相当于 eb 部署?