这里记录一个解决思路
搜索栏的下拉选择框设置:
1 | <fks-select |
表单列显示设置:
1 | <fks-table-column |
data中的数据模型设置:
1 | stateOptions:[{ |
效果便是在发往后端的请求中,相关字段始终是数值型或字符型的数字,而不是文字或英文。
这里记录一个解决思路
搜索栏的下拉选择框设置:
1 | <fks-select |
表单列显示设置:
1 | <fks-table-column |
data中的数据模型设置:
1 | stateOptions:[{ |
效果便是在发往后端的请求中,相关字段始终是数值型或字符型的数字,而不是文字或英文。
Data ID
与profiles
实现:Data ID: Nacos中,可以理解为Spring Cloud应用的配置文件名。
Data ID 的名称格式是这样的:${spring.application.name}.properties
实际上,Data ID的规则中,还包含了环境逻辑,应用启动可以通过spring.profiles.active
来指定具体的环境名称,那么相应客户端的配置为:${spring.application.name}-${spring.profiles.active}.yml
注释:Spring-could默认的配置为:
${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
而上面我们写的 :${spring.application.name}-${spring.profiles.active}.yml
是因为:${spring.cloud.nacos.config.prefix}和${spring.cloud.nacos.config.file-extension}
都使用了默认值
Group
实现Group
在Nacos中是用来对Data ID做集合管理的重要概念,我们可以把GROUP看成一个环境的集合,例如应用A归属一个GROUP-A
,应用B归属GROUP-B
。对于使用GROUP没有固定要求,主要是为了们在实际使用的时候,需要根据我们的具体需求,可以是架构运维上对多环境的管理,也可以是业务上对不同模块的参数管理。
alibaba-nacos-config-client
应用的配置文件中,增加Group的指定配置如:spring.cloud.nacos.config.group=DEV_GROUP
Namespace
实现NameSpace是较大粒度的隔离,它可以隔离上述说的DATA ID
GROUP
,也就是说在不同的命名空间下可以存在相同的DATA ID
和 GROUP
,Namespace的常用场景之一是不同环境的配置的区分隔离,例如:开发测试环境和生产环境的资源(如配置、服务)隔离等。
使用方法:在alibaba-nacos-config-client
应用的配置文件中
增加Namespace
的指定配置,比如:spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a
注意 :namespace 的配置不是使用名称,而是使用Namespace的ID。
利用Nacos配置管理功能中的几个不同纬度来实现多环境的配置管理。从结果上而言,不论用哪一种方式,都能够胜任需求,但是哪一种最好呢?
实际上,Nacos中并未对extension-configs
和shared-configs
的差别进⾏详细阐述。我们从他们的结构,看不出本质差别;除了优先级不同以外,也没有其他差别。那么,Nacos项⽬组为什么要引⼊两个类似的配置呢?我们可以从当初该功能的需求(issue)上找到其原始⽬的。
namespace
区分环境:开发环境、测试环境、预发布环境、⽣产环境。group
区分不同应⽤:同⼀个环境内,不同应⽤的配置,通过group
来区分。因此,主配置应当在dataId
上要区分,同时最好还要有group
的区分,因为group
区分应⽤(虽然dataId
上区分了,不⽤设置group
也能按应⽤单独加载)。
因此按该理念,shared-configs
指定的配置,本来应该是不指定group
的,也就是应当归⼊DEFAULT_GROUP
这个公共分组。
⽐如,其他应⽤的数据库url,都是⼀个固定的url,使⽤shared-configs.dataId = mysql
的共享配置。但其中有⼀个应⽤demo-service
是特例,需要为该应⽤配置扩展属性来覆盖。
1 | spring: |
1、上述两类配置都是数组,对同种配置,数组元素对应的下标越⼤,优先级越⾼。也就是排在后⾯的相同配置,将覆盖排在前⾯的同名配置。
extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0
。shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]
。2、不同种类配置之间,优先级按顺序如下:主配置 > 扩展配置(extension-configs) > 共享配置(shared-configs)。