拆分配置文件
我们可以将我们的配置文件进行拆分放到nacos配置中心中
现在的配置文件大致如下:
spring:
datasource:
username: root
password: root
url: jdbc:mysql://xxx.xx.xxx.x:3306/gulimall_sms?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai&usessl=false
driver-class-name: com.mysql.cj.jdbc.driver
application:
name: gulimall-coupon
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
server:
port: 7000
仔细观察其实分为几类:spring的配置、数据源的配置、mybatis的配置
在nacos配置中心新建命名空间和组
1.思路为:每个微服务有自己的命名空间

2.然后回到配置列表,新增配置
数据源配置

data id为要拆分的配置名,可随意(因为我这里是数据源相关的配置,故取名为datasource.yml)
统一用dev这个组
配置内容为我们抽取出来的关于数据源相关的配置
mybatis配置

spring的配置

在bootstrap.properties中配置
spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=47bea605-611d-489e-836d-db7ad35dcf46 spring.cloud.nacos.config.group=dev spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml spring.cloud.nacos.config.extension-configs[0].group=dev spring.cloud.nacos.config.extension-configs[0].refresh=true spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml spring.cloud.nacos.config.extension-configs[1].group=dev spring.cloud.nacos.config.extension-configs[1].refresh=true spring.cloud.nacos.config.extension-configs[2].data-id=other.yml spring.cloud.nacos.config.extension-configs[2].group=dev spring.cloud.nacos.config.extension-configs[2].refresh=true
1.其中spring.cloud.nacos.config.namespace为我们的命名空间id

2.spring.cloud.nacos.config.group=dev,为选择的命名空间下的组

3.spring.cloud.nacos.config.extension-configs可接收一个数组,所有我们可以以数组的方式从nacos中引入多个配置
public void setextensionconfigs(list<nacosconfigproperties.config> extensionconfigs) {
this.extensionconfigs = extensionconfigs;
}| 配置 | 解析 |
| spring.cloud.nacos.config.extension-configs[0].data-id | 为我们之前在nacos中新建的拆分出来的配置文件的data id |
| spring.cloud.nacos.config.extension-configs[0].group | 命名空间下的组 |
| spring.cloud.nacos.config.extension-configs[0].refresh | 实时刷新,默认为false |
测试
我们将原来项目中appliction.yml中的所有配置项全部注释,发现项目能正常运行,且可以正常调用优惠券服务。
切换环境只需修改组名就好了,无需修改命名空间名。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论