Spring Boot 1.3.8 @Profile 和属性
Spring Boot 1.3.8 @Profile and properties
我确实在 Spring 启动应用程序中使用配置文件。在我的 application.properties 中,我有这 3 个条目:
spring.profiles.active=prod
key1=demo. ...
key1=prod. ...
目前,我必须取消注释该行,具体取决于它是演示版还是生产版。
使用 Spring Boot 的配置文件有更好的方法吗?
是的,您可以创建 属性 个带有配置文件名称后缀的文件,并在那里转储配置文件的特定属性。
例如,
在你的 application-prod.properties
这个会去 key1=prod. ...
在你的 application-demo.properties
中,这个会 key1=demo. ...
并在启动服务器时传递此 java 参数 -Dspring.profiles.active=<profilename>
或设置环境变量 SPRING_PROFILES_ACTIVE=<profile_name>
这是如何实现的:
使用单个 application.properties 并具有以下格式的值:
redis.host=${REDIS_HOST}
redis.port=${REDIS_PORT}
现在对开发、暂存和生产环境使用不同的 .yml 文件,其中每个文件都有与特定环境相关的值。例如,dev.yml、staging.yml、prod.yml:
// dev.yml
REDIS_HOST=localhost
REDIS_PORT=6379
// staging.yml
REDIS_HOST=staging-url
REDIS_PORT=6576
//prod.yml
REDIS_HOST=produrl
REDIS_PORT=5678
现在,运行为不同环境传递配置文件参数的应用程序:
-Dspring.profiles.active=dev
我确实在 Spring 启动应用程序中使用配置文件。在我的 application.properties 中,我有这 3 个条目:
spring.profiles.active=prod
key1=demo. ...
key1=prod. ...
目前,我必须取消注释该行,具体取决于它是演示版还是生产版。 使用 Spring Boot 的配置文件有更好的方法吗?
是的,您可以创建 属性 个带有配置文件名称后缀的文件,并在那里转储配置文件的特定属性。
例如,
在你的 application-prod.properties
这个会去 key1=prod. ...
在你的 application-demo.properties
中,这个会 key1=demo. ...
并在启动服务器时传递此 java 参数 -Dspring.profiles.active=<profilename>
或设置环境变量 SPRING_PROFILES_ACTIVE=<profile_name>
这是如何实现的:
使用单个 application.properties 并具有以下格式的值:
redis.host=${REDIS_HOST} redis.port=${REDIS_PORT}
现在对开发、暂存和生产环境使用不同的 .yml 文件,其中每个文件都有与特定环境相关的值。例如,dev.yml、staging.yml、prod.yml:
// dev.yml REDIS_HOST=localhost REDIS_PORT=6379 // staging.yml REDIS_HOST=staging-url REDIS_PORT=6576 //prod.yml REDIS_HOST=produrl REDIS_PORT=5678
现在,运行为不同环境传递配置文件参数的应用程序:
-Dspring.profiles.active=dev