1、为了解决下述问题
-
配置文件相对分散
-
配置文件无法区分环境
-
配置文件无法实时更新
2、如何解决呢?
-
把项目中各种配置全部都放到一个集中的地方进行统一管理,并提供一套标准的接口
-
需要获取配置的时候,就来配置中心的接口拉取自己的配置。
-
配置中心参数有更新时,能够通知到微服务实时同步最新的配置信息,使之动态更新。
2、配置中心地址配置com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config
配置nacos配置中心的位置
3、在nacos中写配置文件需要注意的是关于配置的命名:一定要加文件的后缀名,比如properties。
4、项目启动时默认查找应用在注册中心的默认配置 application.name+ profiles.active + 扩展名
application.name
application.name+扩展名
5、以多维度的方式动态管理配置 命名空间
分组:具体是用类似数组中的数字来加以区分的
分环境
# 所有配置中心的加载配置都写在此文件中 # public是默认名称空间 配置可以省略 # 加载的不是默认配置文件 必须配置 # 加载指定名称空间的配置: 一个项目只能指定一个名称空间 spring.cloud.nacos.config.namespace=479c772a-ceb7-48ae-8855-a91141303c8a # 一个配置文件的一组配置 # 要加载的配置中心的非默认配置文件的名称 spring.cloud.nacos.config.extension-configs[0].data-id=service-redis.properties # 配置文件的分组 #一组配置文件用一个数字,像这里的0和1 spring.cloud.nacos.config.extension-configs[0].group=GROUP_1 spring.cloud.nacos.config.extension-configs[0].refresh=true # 一个配置文件的一组配置 # 要加载的配置中心的非默认配置文件的名称 spring.cloud.nacos.config.extension-configs[1].data-id=service-jdbc.properties spring.cloud.nacos.config.extension-configs[1].refresh=true
上述实例解读:
1、refresh=true,可以达到实时刷新的效果
三、杂七杂八1、在controller中可以通过@Value来读取配置信息
2、为了达到实时刷新的效果,可以在controller类上加上注解@RefreshScope,这个是配合上面那给读取配置信息一起使用的。
3、如何理解在application.yml中一定要配置的下述信息
spring:
profiles:
active: dev
# 运行环境: 配置中心加载默认配置时使用、日志文件日志配置
``



