java - 文件中定义的 Spring 属性未解析

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

application.properties 中定义属性时,例如

deployment=dev
spring.profiles.active=${deployment}

Spring 无法正确解析deployment 属性。

Main:以下配置文件处于 Activity 状态:${deployment}

相反,我必须在变量的每个实例中指定默认值,例如

deployment=dev
spring.profiles.active=${deployment:dev}

但是,当我通过多种方式(环境变量、系统属性等)之一覆盖该属性时,设置值在任何地方都能正确解析。有没有办法在 application.properties 文件中定义默认值?

最佳答案

您可以执行以下操作:

创建包含默认设置的 application.properties 文件。

然后创建一个 applicaiton-ENV.properties 文件,其中包含 ENV 的任何附加值或重载值(在您的示例中,ENV 将为 dev)

然后在运行时设置环境变量 spring.profiles.active=dev

java .... -Dspring.profiles.active=dev  YourSpring.jar

这将导致 spring boot 使用您想要的配置文件运行,并将读取默认值和附加的 -dev 文件。

这允许您为无限数量的环境设置多个不同的应用程序属性。如果您没有设置 spring.profiles.active 环境变量,它将仅加载默认的 application.properties 文件即可运行。

关于java - 文件中定义的 Spring 属性未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59974065/

相关文章:

java - 如何使用 Eclipse 模板自动插入类表示法?

java - 通过按钮在 JSF 站点之外导航的选项

spring-boot - Spring Boot AutoConfigure 与 Spring Boot 执行器

java - 替换 spring 配置文件特定属性文件中的属性占位符

java - Spring Boot 项目中无法 Autowiring

java - 一个又一个对话框显示对话框 : HANGS

java - 坚持 Java 中的递归模式(ZigZag)

java - 如何在 Spring Boot Actuator 中注册匿名 HealthIndicators

spring - jdbcTemplate 会关闭结果集吗?

java - 单元测试模拟注入(inject)