燕莎做网站,卡一卡二三免视频,新品发布会现场,衣服网站设计分布式配置的优势#xff1a;
不需要重新发布我们的应用 新建父工程#xff1a;【将它作为跟 所以要把父工程里面的src删掉】 新建子模块#xff1a; 新建bootstrap.properties#xff1a;
在使用Nacos作为配置中心时#xff0c;推荐在bootstrap.properties中配置Nacos相…分布式配置的优势
不需要重新发布我们的应用 新建父工程【将它作为跟 所以要把父工程里面的src删掉】 新建子模块 新建bootstrap.properties
在使用Nacos作为配置中心时推荐在bootstrap.properties中配置Nacos相关信息
而不是在application.properties中 原因主要涉及Spring Boot的启动过程和配置加载顺序
1. 优先级高
bootstrap.properties 的加载优先级高于 application.properties
即它可以在应用启动之前就完成对 Nacos 客户端的配置确保客户端能够尽早地建立与 Nacos 服务器的连接
2. 非 Spring 管理的配置
bootstrap.properties 中的配置不会被 Spring 应用上下文所管理
即即使在 Spring 应用上下文尚未完全初始化的情况下Nacos 客户端也可以通过这些配置正常工作 总结
application.properties 是为 Spring Boot 服务的而 Spring Boot 底层用的就是 Spring
一定要在Spring应用启动之前 早一步从nacos那里把相关的配置拿下来 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcn.jsmart/groupIdartifactIdsmart-root/artifactIdversion0.0.1-SNAPSHOT/version/parent!-- 父的打包方式 --packagingpom/packagingmodulesmodulenacos-config/module/modulesartifactIdspring-cloud-alibaba-root/artifactIdgroupIdcom.beiyou/groupIdversion0.0.1-SNAPSHOT/version/project?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentartifactIdspring-cloud-alibaba-root/artifactIdgroupIdcom.beiyou/groupIdversion0.0.1-SNAPSHOT/version!-- 用来指定关系 --relativePath../pom.xml/relativePath/parentartifactIdnacos-config/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupId!-- starter-web 里面自带SpringMVC 不加这个 很多注解就引不进来--artifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/projectspring.application.name order-servicespring.cloud.nacos.config.server-addr 192.168.21.17:8848
# 命名空间的配置若不配置 则默认为public空间 若配置了 就以配置为准
spring.cloud.nacos.config.namespace public
# 就是 nacos 里的DataId, 如果不配置 就默认使用的是 spring.application.name 的值
spring.cloud.nacos.config.name order-service
# 配置文件的格式 值是properties 则可以省略 若是其他格式 则必须配置
spring.cloud.nacos.config.file-extension properties
# 配置组 默认是DEFAULT_GROUP
spring.cloud.nacos.config.group DEFAULT_GROUP
package com.beiyou.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class TestController {Value(${example.first})private String first;GetMapping(/test)public String test(){return this.first;}
}在nacos中 通过哪个注解 可以实现自动更新
【idea启动后请求得到结果1在nacos中 将结果1修改为结果2 重新发布 在idea中 直接请求就能拿到结果2所以不用再次启动idea了但若是在配置里 新加配置内容 还是需要重新启动idea的】 通过注解RefreshScope即所谓的热更新 版本迭代的时候 用组(即可以在同一项目下 有不同的版本号)
但基本上 我们在开发的时候 用的还是DEFAULT_GROUP .Nacos 与 application.properties 同时配置了同一个key 谁的优先级高为什么
bootstrap.properties 的优先级更高原因见上述 这种分布式配置的优势
优势
① 我们在更改配置的时候 不需要再重新发布了
② 配置变得更灵活了