在Spring Boot中,可以基于spring.profiles.active实现不同环境下的配置切换,这在实际工作中用得比较多。很多公司都会有开发环境、测试环境、预生产环境、生产环境等,服务部署在不同环境下,有一些配置是不同的,所以我们希望能够通过一个属性非常方便地指定当前应用部署的环境,并根据不同的环境加载对应的配置。基于spring boot项目的多环境支持配置步骤如下:
·在resource目录下根据不同环境创建不同的配置。
· application-dev.properties
· application-test.properties
· application-prod.properties
实际项目运用:bootstrap.yml配置
spring:
profiles:
active: '@spring.profiles.active@'
application:
name: app-center
version: '@project.version@' # MAVEN中定义的版本号
spring:
cloud:
nacos:
discovery:
server-addr:
username:
password:
namespace:
config:
server-addr:
username:
password:
namespace:
file-extension: yml
sharedConfigs:
- dataId: **-**-datasource.yml
- dataId: redis配置
- dataId: rocketMQ配置
- dataId: mongodb配置
Resources目录下:
定义一个application.properties默认配置,在该配置中通过spring.profiles.active=env来指定当前使用哪个环境配置,如果{env}来指定当前使用哪个环境配置,如果env来指定当前使用哪个环境配置,如果{env}的值为prod,表示application-pro.properties。也可以通过设置VM options=-dspring.profiles.active=prod来指定使用的环境配置。
我们可以发现,基于Nacos Config实现不同环境的切换和本地配置的不同环境切换没有任何区别。
如果我们需要切换到测试环境,只需要修改spring.profiles.active=test即可。不过这个属性配置是写死在bootstrap.properties文件中的,修改起来显得很麻烦。通过做法:通过-Dspring.profiles.active=${profile}参数来指定环境,以达到灵活切换的目的。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理