【问题标题】:spring.profiles.active is not working in springboot applicationspring.profiles.active 在 Spring Boot 应用程序中不起作用
【发布时间】:2020-11-12 22:32:58
【问题描述】:

我已经像这样在 Java 类中创建了配置文件,

@Profile(value = "cache")
public class MapCache {
....
}

这些配置文件在使用 spring.profiles.active 时没有被激活,但如果我使用 spring.profiles.include 配置文件工作正常。

我想通过 application.properties 中添加的属性激活配置文件

注意:应用程序在独立的码头实例中运行。

任何提示都会很好。

【问题讨论】:

    标签: java spring-boot spring-profiles spring-properties


    【解决方案1】:

    要通过注释激活配置文件,您需要@ActiveProfile("profileName")@Profile 注解用于将对象标记为配置文件的成员。

    【讨论】:

    • 感谢您的回复,但我想通过属性激活,因为当我想添加或删除活动配置文件时,我不会修改 java 文件
    • 将此添加到属性中或通过环境变量设置spring.profiles.active=dev - 请记住,通过属性文件加载时您需要具有正确的文件名。
    • 我很惊讶为什么 spring.profiles.active=cache 不起作用,缓存是在类上创建的配置文件,如上所示。我明白了你想说的话,但我的个人资料在课程中。
    • 如果您查看 spring 日志输出的顶部,它通常会告诉您哪个配置文件已被激活(在前 10 行内)。如果加载了默认配置文件并且您已将该行添加到配置中,请尝试将其设置为环境变量。如果它有效,则可能没有拾取您指定的属性文件。尝试并使用您看到的与加载的活动配置文件相关的任何日志输出来更新问题
    【解决方案2】:

    您也可以尝试运行应用程序并将它们作为命令行参数传递

    java -jar -Dspring.profiles.active={your_profile_name} application.jar
    

    或者如果你通过 maven 运行应用程序:

    mvn spring-boot:run -Dspring-boot.run.profiles={your_profile_name}
    

    这是我在互联网上找到的一个很好的示例,其中包含设置弹簧配置文件的所有方法,它应该会有所帮助:https://www.baeldung.com/spring-profiles

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多