一、 Nacos配置中心
1、在gulimall-common公共模块添加依赖
<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--服务注册配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、配置bootstrap.properties文件
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3、在gulimall-coupon模块中的application.properties文件中添加以下测试内容
coupon.user.name=zhangsan
coupon.user.age=18
4、在gulimall-coupon模块CouponController中编写测试接口获取配置文件中的信息
@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;
@GetMapping("/test")
public R test(){
return R.ok().put("name",name).put("age",age);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = couponService.queryPage(params);
return R.ok().put("page", page);
}
5、在nacos页面的配置管理-配置列表中添加配置信息【Data Id】

6、在CouponController中添加@RefreshScope注解,表示可以实时动态刷新nacos配置文件的信息
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
....
}
7、测试
访问test接口,当nacos对应配置文件中的内容发生变化,则这个接口获取到的内容也随之变化。
如果Nacos配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。

二、命名空间
1、命名空间:配置隔离
默认:public(保留空间):默认新增的所有配置都在public空间。
1、可以创建开发、测试、生产三种环境,利用命名空间来做环境隔离。
2、同样的在prod生产环境配置相同的配置信息

3、如果我们想使用生产环境的配置,怎么在切换?
在配置文件中添加prod对应的id,如果不定义命名空间,则默认使用public中的配置文件, 注意:在bootstrap.properties配置上,需要使用哪个命名空间下的配置
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=5cf89452-969b-4cb7-aff9-44c9f9c9e97d

4、测试接口

5、每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置

6、配置集:所有的配置的集合
7、配置集ID:类似文件名
Data ID:类似文件名
8、配置分组
默认所有的配置集都属于:DEFAULT_GROUP

在同一个命名空间下,可以配置多个分组

在程序中,如果想使用prod这个分组的配置信息,则需要在bootstrap.properties文件添加以下配置:
spring.cloud.nacos.config.group=prod
测试:


2、从配置中心中同时加载多个配置集
1、将application.yml文件中的配置信息分离,数据库配置的放在一个配置里面,mybatis的相关信息放在一个配置里面,其他的放在other.yml文件中

2、将application.yml文件注释掉
3、在bootstrap.properties文件中配置:
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=9f9290f2-6b08-480f-a163-5dc02cdb936e
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
总结:
1、微服务任何配置信息,任何配置文件都可以放在配置中心中。
2、只需要在bootstrap.properties说明加载配置中心中哪些配置文件即可。
3、@Value、@ConfigurationProperties获取配置文件中的值信息。
配置中心有的优先使用配置中心的。
1937

被折叠的 条评论
为什么被折叠?



