当前位置: 首页 > 知识库问答 >
问题:

如何使用spring boot和Maven设置配置文件?

刘和正
2023-03-14

我有两个环境来设置我的API,所以我有生产和开发。我首先需要的是找到一种方法来自动完成这一任务,例如,在运行时,不发送任何参数(-d)应用程序找到了一种方法来识别环境,但我没有找到任何方法来完成这一任务。

所以我看了一个教程,在同样有一个方法放了一个环境变量,并定义了我的application.properties。所以在下面的步骤中:

>

  • 我在我的应用程序中定义了3个文件,application.properties、application-dev.properties和application-prod.properties。

    在application.properties中,我有spring.profiles.active=${myenv:local}配置。

    在application-dev.properties中,我有spring.profiles.active=dev。

    我开始使用微服务,所以如果我有几个微服务,用这种方式设置环境变量将很难维护。有没有更容易配置配置文件而不发送命令行的方法?

  • 共有1个答案

    王刚毅
    2023-03-14

    您需要在应用程序启动期间将变量-dspring.profiles.active=dev传递给vm。

    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

    不要将此变量放入应用程序-${env}.properties文件。关键是spring在应用程序启动期间根据spring.profiles.active解析正确的配置。因此在您的情况下,不需要application.properties文件。你可以简单地移除它。保留您的dev和prod配置,并提供一个适当的变量。您不需要在系统变量中设置它--您需要直接指示您的应用程序。尝试:

    如果你想知道哪个env app正在运行,可以试试:

    @Value("${spring.profiles.active}")
    private String activeProfile;
    

    Maven概要文件在编译期间解析。那是两个不同的世界。

     类似资料:
    • 问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题

    • 问题内容: 我正在尝试根据某个Maven配置文件是否处于活动状态来使用数据库信息配置Spring配置文件。我已经看到了一些答案,但是很难将它们放在一起。 我有一个这样的Maven个人资料: 还有一个settings.xml文件,如下所示: 并在servlet-context.xml中: 我的问题基本上是,如何将Maven属性放入servlet- context.xml文件中?我需要一个.prope

    • 我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。

    • 问题内容: 我正在尝试使用Maven 3 在Spring Boot应用程序中设置活动配置文件。在我的pom.xml中,将默认的活动配置文件和属性spring.profiles.active设置 为development: 但是每次我运行应用程序时,都会在日志中收到以下消息: 并且将SpringBoot配置文件设置为默认值(读取application.properties而不是application

    • 我正在尝试将我的应用程序配置为具有两个构建配置文件:开发和生产。为此,我在src/main/resources文件夹下创建了两个子目录:src/main/resources/development和src/main/resources/production。每个子目录都有自己的。属性文件。 我使用命令mvn install-P${profile_here}构建应用程序 Maven将与所选配置文件相

    • 问题内容: 我想使用带有以下条目的application.properties文件设置配置文件: 如何在我的context.xml文件中设置spring.profiles.active?init-param仅在web.xml上下文中有效。 问题答案: 有几种更改活动配置文件的方法,这些方法都不直接取自属性文件。 您可以像在问题中一样使用。 您可以在应用程序启动时提供系统参数 你可以得到从你和编程方