Springboot没有加载application.dev.properties文件

时间:2016-06-26 18:52:03

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

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

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

  1. application.properties(用于制作)
  2. application.dev.properties(用于开发)
  3. 我在每个文件中都有一个如下所示的属性。

    对于Prod

    server.database.host=192.168.1.1
    

    对于Dev

    server.database.host=192.168.12.125 
    

    我有一个类似下面的课程

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

    上面的代码总是采用prod设置(application.properties)文件,即使我为dev提供正确的参数,如--spring.profiles.active=dev

    以下是我用来加载dev属性文件的命令。

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

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

4 个答案:

答案 0 :(得分:26)

我发现了一些问题:

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

答案 1 :(得分:3)

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

-Dspring.profiles.active=dev

答案 2 :(得分:1)

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

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

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

  3. 单击“应用并运行”。

答案 3 :(得分:0)

您应该指定运行哪个配置文件,如下所示:

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

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