application.properties和application.yml可以混合使用吗?

时间:2015-08-12 16:20:23

标签: spring mongodb amazon-ec2 spring-boot

使用spring-boot 1.2.5版

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

./gradlew bootrun

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

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

application.properties

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文件中

1 个答案:

答案 0 :(得分:3)

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

我最终将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