15

在我的项目中,我想使用特定于环境的属性文件。例如,如果我将它运行到开发中,它应该使用 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;

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

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

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

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

4

4 回答 4

32

我注意到的几个问题:

  1. @Value属性名称应该是String类似的@Value("${server.database.host}")
  2. 配置文件特定的属性文件应遵循application-{profile}.properties格式,例如application-dev.properties
  3. 尝试使用-Dlike传递配置文件java -Dspring.profiles.active=dev -jar app.jar
于 2016-06-26T19:18:22.090 回答
7

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

-Dspring.profiles.active=dev
于 2018-11-20T13:31:39.197 回答
4

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

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

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

于 2019-10-01T16:03:32.507 回答
2

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

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

  2. 在新窗口中,选择左侧的 spring boot application,并在右侧添加详细信息,并在配置文件下拉列表中选择 dev。 在此处输入图像描述

  3. 单击应用并运行。

于 2018-11-20T09:27:14.377 回答