在 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/