【问题标题】:Springboot not loading application.dev.properties fileSpring Boot 未加载 application.dev.properties 文件
【发布时间】:2016-10-28 18:19:46
【问题描述】:

在我的项目中,我想使用环境特定的属性文件。例如,如果我将它运行到开发中,它应该使用 application.dev.properties,对于生产它应该使用 application.prod.properties 等等。

我的资源文件夹中有以下两个文件。

  1. application.properties(用于生产)
  2. application.dev.properties(用于开发)

我在每个文件中都有一个如下属性。

为了产品

server.database.host=192.168.1.1

开发者

server.database.host=192.168.12.125 

我有一个像下面这样的课程

 public class DataSource {

     @Value(${server.database.host})
     String host;

即使我为开发人员提供了正确的参数,例如--spring.profiles.active=dev

,上面的代码总是使用产品设置(application.properties)文件

下面是我用来加载开发属性文件的命令。

java -jar myjar.jar --spring.profiles.active=dev

它还打印出活动配置文件是 dev,但它始终连接到 prod db。

【问题讨论】:

    标签: spring-boot spring-boot-maven-plugin


    【解决方案1】:

    我注意到的几个问题:

    1. @Value 属性名称应该是 String,例如 @Value("${server.database.host}")
    2. 配置文件特定的属性文件应遵循application-{profile}.properties 格式,例如application-dev.properties
    3. 尝试使用-D 传递配置文件,例如java -Dspring.profiles.active=dev -jar app.jar

    【讨论】:

    • 嘿,谢谢.. 我按照您的建议更改了属性文件名,然后您在第 3 步中建议的命令运行良好.. 非常感谢..!
    • 这似乎不再适用于 SpringBoot 2.0。
    【解决方案2】:

    尝试在运行配置中添加 vm 参数:

    -Dspring.profiles.active=dev
    

    【讨论】:

      【解决方案3】:

      您应该按如下方式指定要运行的配置文件:

      mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar
      

      另见文档:https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

      【讨论】:

        【解决方案4】:

        如果在 Eclipse 或 STS 上运行,则使用以下步骤:

        1. 右键项目->运行方式->运行配置。

        2. 在新窗口中,选择左侧的 spring boot 应用程序,并在右侧添加详细信息,然后在配置文件下拉列表中选择 dev。

        3. 点击应用并运行。

        【讨论】:

          猜你喜欢
          • 2021-04-15
          • 2015-10-29
          • 2015-11-19
          • 2019-06-07
          • 1970-01-01
          • 1970-01-01
          • 2016-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多