多环境配置
在一般开发过程中如果调试都在本地进行,则可以设置一个多环境配置,在本地与线上配置间来回切换。
springcloud默认会访问的配置文件名是application.properties,
我们如果要创建多环境的配置文件的话,文件名格式应为:application-{profile}.properties
其中的{profile}用来标识不同的环境,如application-native.properties文件可以用来配置本地环境、application-prod.properties文件可以用来配置生产环境。
springcloud中通过“spring.profiles.active”属性来指定{profile},如spring.profiles.active=native,则使用的是application-native.properties配置文件。
建立本地配置中心
配置中心分为两部分组成:客户端和服务端。
服务端是单独的服务,需要注册到注册中心中。
而客户端则是存在于各个其他服务中的。
配置中心的服务端既可以将配置文件保存在远程的git仓库中,也可以将这些配置文件保存在本地,因为平常开发用本地配置中心较多,此次主要讲本地配置中心的搭建。
服务端
先建立配置中心的启动入口:
其pom文件中只需要添加以下依赖即可:
配置文件application.properties如下:
客户端
客户端存在于各个服务中,只需要在需要的服务项目中创建一个bootstrap.properties配置文件,即可从配置中心服务端获取相关配置。
bootstrap.properties:
通过客户端的bootstrap.properties配置文件可以看出,其实里面就写了两种东西:
spring.cloud.config.uri是配置中心地址,用来定位配置中心。
其余的三个是“配置文件规则”,用来定位“具体的配置文件”。
我们再来讲一下,什么是“配置文件规则”:
我们之前在讲配置中心服务端的时候,定义了一个spring.cloud.config.server.native.searchLocations=file:D:\\etc\\native参数
这个硬盘路径里装的都是具体的配置文件,而每个客户端要获取的也是这些配置文件。具体的文件例如下图所示:
由图中我们可看出,里面所有的文件的命名规则都遵循:{application}-{profile}.properties
所以我们客户端bootstrap.properties文件中的spring.cloud.config.name=native参数,实际上是为了匹配到这些配置文件的{application}前缀,
所以spring.cloud.config.profile=common,mysql,activemq参数匹配的就是{profile}后缀了。
所以上面实例的配置中心客户端实际上只会拿到native-common.properties、native-mysql.properties、native-activemq.properties这三个配置文件。