<!-- nacos 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
spring.application.name=config-service
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
配置管理===>配置列表===>新建===>Data Id(名为 ${spring.application.name}.properties),如:config-service.properties。配置内容自定义...
? ? ? ? 所谓动态获取配置是指,当配置中心的 ${spring.application.name}.properties文件中配置的信息发生变化时,无需重启服务即可获取最新的值。两个注解:@RefreshScope、@Value。
/**
* @Author : 一叶浮萍归大海
* @Date: 2024/1/2 13:11
* @Description:
*/
@RefreshScope
@RestController
public class ConfigController {
@Value("${nacos.config.user.name}")
private String username;
@Value("${nacos.config.user.age}")
private Integer age;
@GetMapping("/getNacosConfig")
public Map<String,Object> getNacosConfig() {
Map<String,Object> resultMap = new HashMap<>(2);
resultMap.put("username",username);
resultMap.put("age",age);
return resultMap;
}
}
(1)作用:配置环境隔离;
(2)默认:public(保留空间),默认新增的所有配置都在public空间;
(3)案例1:开发环境、测试环境、生产环境有各自的配置文件,可以新建3个命名空间用于隔离这几个环境
? ? ? ? ? ? ? ? ?注意事项:需要在bootstrap.properties配置文件中指明使用具体的哪个命名空间下的配置,例如:
? ? ? ? ? ? ? ? ?spring.cloud.nacos.config.namespace=aa614e32-ccd8-47af-99c8-92c634b1dbd3?
????????案例2:每一个微服务之间互相隔离,每一个微服务都创建自己的命名空间,然后在bootstrap.properties中加载自己命名空间下的所有配置
概述:
????????默认所有的配置集都属于DEFAULT_GROUP,是一个更细粒度的配置,例如针对618、双十一、双十二建立不同的分组。
boostrap.properties配置
?# 配置命名空间
spring.cloud.nacos.config.namespace=df0a2502-7ea0-4143-b952-cd1f7064b8f8
?# 配置分组
spring.cloud.nacos.config.group=618
概述:类似文件名
Data ID:文件名
概述:
????????一个完整的Spring Cloud微服务应用避不可少的常见组件有:数据源、MyBatis-Plus、服务注册与发现、服务端口、RocketMQ、Redis、Nginx...等,如果把这些配置都写在一个文件中虽然也可以满足需求,但是大量的配置写在一个文件中,会显得配置异常的臃肿,基于此Spring Cloud Alibaba提供了配置集的功能,所谓配置集,其实相当于把多个不同的配置,通过在bootstrap.properties文件中统一管理,来将各个配置信息组合在一起,形成一个完整的配置。例如:nacos配置中心有如下配置:
bootstrap.properties中可以通过如下方式将这几个配置统一管理起来对外提供服务: