文章目录
前言
Nacos用配置中心可以减少由于修改配置文件而多次打包问题。案例来源尚硅谷《谷粒商城》
一、引入依赖
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
二、创建一个bootstrap.properties。内容如下:
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
三、需要给配置中心默认添加一个叫 数据集(Data Id)gulimall-coupon.properties。默认规则,应用名.properties 见下图
四、动态获取配置。
@RefreshScope:动态获取并刷新配置
@Value("${配置项的名}"):获取到配置。
如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。
调用接口返回如下数据:
五、命名空间与配置分组。
命名空间:配置隔离;
默认:public(保留空间);默认新增的所有配置都在public空间。
1、开发,测试,生产:利用命名空间来做环境隔离。
注意:在bootstrap.properties;配置上,需要使用哪个命名空间下的配置,
spring.cloud.nacos.config.namespace=9de62e44-cd2a-4a82-bf5c-95878bd5e871
2、每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置
点击分组为prod的gulimall-coupon.properties文件内容如下
调用接口:
六、多数据集配置。
原来application.yml中的配置内容如下:
server:
port: 7000
spring:
application:
name: gulimall-coupon
datasource:
url: jdbc:mysql://192.168.xx.xx:3306/gulimall_sms
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
#注意nacos配置要写到Spring下面,写在mybaits-plus下面无效
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
mybatis-plus:
# 中间的**代表mapper路径下的任意位置
mapper-locations: classpath:/mapper/**/*.xml
#设置实体类的自增主键
global-config:
db-config:
id-type: auto
#逻辑删除
logic-delete-value: 1
logic-not-delete-value: 0
logging:
level:
com.atguigu.gulimall: error
在nacos拆分成如下多个yml文件:
datasource.yml
spring:
datasource:
url: jdbc:mysql://192.168.xx.xx:3306/gulimall_sms
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis.yml
mybatis-plus:
# 中间的**代表mapper路径下的任意位置
mapper-locations: classpath:/mapper/**/*.xml
#设置实体类的自增主键
global-config:
db-config:
id-type: auto
#逻辑删除
logic-delete-value: 1
logic-not-delete-value: 0
other.yml
server:
port: 7000
spring:
application:
name: gulimall-coupon
#注意nacos配置要写到Spring下面,写在mybaits-plus下面无效
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
logging:
level:
com.atguigu.gulimall: error
在bootstrap.properties文件中配置如下内容:
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置命名空间:命名空间id,不配置就默认选择public命名空间
spring.cloud.nacos.config.namespace=850423ee-2476-4c3b-a056-8457cd5d6c09
#配置组
#spring.cloud.nacos.config.group=prod
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
这时候删除application.yml文件,项目也能正常启动。