读取本地配置文件
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