spring cloud config
提供了将各个服务配置统一管理的功能,可以直接使用git
进行文件管理。我在公司的项目中引入了该服务,在公司环境中非常好用。但是在客户现场部署时出现问题,由于客户网络是局域网不能联网,因此访问不到git
上的配置文件。于是找到了config直接指定本地配置文件的方式,下面是配置方法。
本项目中config既是spring相关配置的管理服务,又是整个产品配置参数的管理服务,所以需要在启动时就把git或者本地的配置文件提前加载起来,这样才能正常启动。如何在系统启动前就加载配置文件,这个是通过spring.cloud.server.bootstrap
参数控制的,只需要设置为true
即可。
如果我要在项目部署的时候使用本地差异化的配置该如何做呢?
spring cloud config提供了从本地磁盘读取配置的方法。由于此处使用了bootstrap模式(即当前应用也依赖本地或远程配置文件,让spring-config优先加载远程配置再执行当前应用其他初始化动作),所以不能使用native
模式启动 否则会报错。官方提供的方法是使用composite
模式,整个配置文件如下:
spring:
application:
name: config-server
profiles:
active: composite,default # 如果要使用本地配置文件,此处需增加composite。多profile时,谁在前面谁的配置优先级就高
cloud:
config:
server:
bootstrap: true # 提前加载配置文件,保证后续数据库连接正常启动