7、Nacos配置中心

读取本地配置文件

1、在mall-common的pom.xml文件中添加nacos配置

 <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

2、在对应优惠券微服务创建mall-coupon\src\main\resources\bootstrap.properties

spring.application.name=mall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3、 创建mall-coupon\src\main\resources\application.properties

coupon.user.name=zhansan1
coupon.user.age=18

4、在…\coupon\controller\CouponController.java创建测试函数

@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;

@RequestMapping("/test")
public R test(){
    return R.ok().put("name",name).put("age",age);
}

5、启动微服务mall-coupon,访问http://localhost:7000/coupon/coupon/test

{
    "msg":"success",
    "code":0,
    "name":"zhangsan1",
    "age":18
}
读取nacos配置文件

1、在nacos配置管理 | 配置列表 创建mall-coupon.properties
在这里插入图片描述
2、添加刷新注解

@RefreshScope
public class CouponController {
}

3、启动微服务mall-coupon,访问http://localhost:7000/coupon/coupon/test

{
    "msg":"success",
    "code":0,
    "name":"zhangsan2",
    "age":20
}
Nacos基本概念

1、命名空间:配置隔离

  • 开发dev,测试test,生产prod:利用命名空间来做环境隔离。
    注意:在bootstrap.properties配置上,需要配置使用命名空间下的ID。
  • 每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置。

2、配置集:所有的配置的集合
例如一个application.yml文件就是一个配置集。

3、配置集ID:类似文件名,如application.yml。
在Nacos中,即是Data ID。
在这里插入图片描述

4、配置分组:默认所有的配置集都属于:DEFAULT_GROUP。
项目中的使用:每个微服务创建自己的命名空间,使用配置分组区分环境,dev,test,prod。

5、同时加载多个配置集
在日常开发中,不会把所有配置写在一个配置集中(如以下application.yml)。

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.56.10:3306/gulimall_sms
    driver-class-name: com.mysql.jdbc.Driver
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: mall-coupon

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto
server:
  port: 7000

会根据需求拆分成

  • datasource.yml(数据源),分组设置为dev
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.56.10:3306/gulimall_sms
    driver-class-name: com.mysql.jdbc.Driver
  • mybatis.yml,分组设置为dev
mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto
  • other.yml,分组设置为dev
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: mall-coupon
server:
  port: 7000

6、修改bootstrap.properties

spring.application.name=mall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=a04ac132-4a74-45bf-bc60-a749d4c140c6
#spring.cloud.nacos.config.group=dev

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KAIZ_LEARN/article/details/107669987