不管学习什么技术,官网永远是第一选择。
官网: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

Nacos服务配置比之前服务多了一个spring-cloud-starter-alibaba-nacos-config依赖
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jiny</groupId><artifactId>MySpringCloudAlibaba</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.jiny</groupId><artifactId>cloudalibaba-config-3377</artifactId><version>0.0.1-SNAPSHOT</version><name>cloudalibaba-config-3377</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

要注意的是这里我们要配置两个,因为Nacos同SpringCloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application分别要配置的是,这里bootstrap.yml配置好了以后,作用是两个,第一个让3377这个服务注册到Nacos中,第二个作用就是去Nacos中去读取指定后缀为yaml的配置文件:
bootstrap.yml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jiny</groupId><artifactId>MySpringCloudAlibaba</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.jiny</groupId><artifactId>cloudalibaba-config-3377</artifactId><version>0.0.1-SNAPSHOT</version><name>cloudalibaba-config-3377</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

application.yml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jiny</groupId><artifactId>MySpringCloudAlibaba</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.jiny</groupId><artifactId>cloudalibaba-config-3377</artifactId><version>0.0.1-SNAPSHOT</version><name>cloudalibaba-config-3377</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

启动类添加@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class CloudalibabaConfig3377Application {public static void main(String[] args) {SpringApplication.run(CloudalibabaConfig3377Application.class, args);}}

业务类
这里的@RefreshScope实现配置自动更新,意思为如果想要使配置文件中的配置修改后不用重启项目即生效,可以使用@RefreshScope配置来实现

@RestController
@RefreshScope //支持Nacos的动态刷新功能
public class ConfigClientController {@Value("${config.info}")private String configInfo;//    @Value("${/config/info}")@RequestMapping("/config/info")public String getConfigInfo(){return configInfo;}
}

使用Nacos作为配置中心


Nacos配置规则
在 Nacos Spring Cloud 中,dataId 的完整格式如下(详情可以参考官网 https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html):

${prefix}-${spring.profiles.active}.${file-extension}
1. `prefix` 默认为 `spring.application.name` 的值,也可以通过配置项 `spring.cloud.nacos.config.prefix`来配置。
2. `spring.profiles.active` 即为当前环境对应的 profile,注意:**当 `spring.profiles.active` 为空时,对应的连接符 `-` 也将不存在,dataId 的拼接格式变成 `${prefix}.${file-extension}`**(不能删除)
3. `file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` 和 `yaml` 类型。
4. 通过 Spring Cloud 原生注解 `@RefreshScope` 实现配置自动更新:
5. 所以根据官方给出的规则我们最终需要在Nacos配置中心添加的配置文件的名字规则和名字为:
6. # ${spring.application.name}-${spring.profiles.active}.${file-extension}
# nacos-config-client-dev.yaml
# 微服务名称-当前环境-文件格式

下图为创建的一个配置

启动项目,访问

http://localhost:3377/config/info


修改配置文件,访问,可以看到访问数据在服务不需要重启的情况下已经更新。

Nacos之服务配置中心相关推荐

  1. 小六六平时的开发小技巧二(Nacos在服务配置中心的妙用)

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger 絮叨 小六六打算开一个系列把自己平时的一些开发经验分享出来和 ...

  2. Spring Cloud Alibaba——Nacos服务配置中心

    Nacos服务配置中心 建Module 改Pom 改yml Nacos端操作 写启动类 写controller层 测试 Tips 简单记录下使用Nacos作为服务配置中心,此篇建立在上篇的Nacos服 ...

  3. 微服务配置中心实战:Spring + MyBatis + Druid + Nacos

    转载自  微服务配置中心实战:Spring + MyBatis + Druid + Nacos 很多基于 Spring MVC 框架的 Web 开发中,Spring + MyBatis + Druid ...

  4. 手把手教你搭建SpringCloudAlibaba之Nacos服务配置中心

    SpringCloud Alibaba全集文章目录: 零.手把手教你搭建SpringCloudAlibaba项目 一.手把手教你搭建SpringCloud Alibaba之生产者与消费者 二.手把手教 ...

  5. Spring Cloud Alibaba教程:使用Nacos作为服务注册中心

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 什么是Nacos? Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易 ...

  6. 深度对比三种主流微服务配置中心

    在撰写这篇技术选型的文章之前,是比较犹豫的.因为,以其中一个开源项目开发者的身份,去写一篇三个开源项目的对比,即便很克制的去客观的比较,也很难有信服力.这就像,既是参赛选手,又想做裁判,观众肯定是不买 ...

  7. apollo修改配置刷新bean_微服务配置中心完全解读

    本文作者:风卿,Nacos 社区 committer. 在撰写这篇技术选型的文章之前,是比较犹豫的.因为,以其中一个开源项目开发者的身份,去写一篇三个开源项目的对比,即便很克制的去客观的比较,也很难有 ...

  8. 微服务配置中心, 这个方案 Go 里用起来不输 SpringCloud

    微服务架构设计模式里有一条讲到,要设计可配置的服务.把服务从单体架构细分成微服务后,所有配置属性都集中存储在一个位置,更易于管理.这个集中存储管理配置的地方,就是配置中心. 使用配置中心还有一个好处就 ...

  9. Nacos中服务注册中心AP、CP模式实现,AP、CP模式切换

    本文分析Nacos基于Nacos 2.0 Nacos中服务注册中心默认是AP模式,如果设置为CP模式 那么客户端设置 spring.cloud.nacos.discovery.ephemeral=fa ...

最新文章

  1. iOS Swift UISearchController的取消按钮
  2. Linux dd 命令具体用法
  3. yolov3 anchor 理解
  4. C#中使用Process调取Windows中的进程(应用程序)
  5. 华北理工大学815c语言程序设计,2017年华北理工大学信息工程学院815C程序设计考研冲刺密押题...
  6. Codeforces 67A【模拟】
  7. 掌握 Ajax,第 4 部分: 利用 DOM 进行 Web 响应
  8. jquery插件之thickbox
  9. 计算机基础:多媒体基础知识笔记
  10. [剑指Offer] 25.复杂链表的复制
  11. python3 使用 pi3 安装软件时候,报错找不到 SSL 附解决方法
  12. springboot 之Spring Web Mvc Framework
  13. 蓝桥杯——说好的进阶之入学考试
  14. Linux学习一天一个命令(1)[ls命令]
  15. 利用Brettle.Web.NeatUpload控件对打文件进行上传(转)
  16. 2018年数学建模美赛B题做题思路和详细分析(五)
  17. 百度OCR图像识别(包含自定义模板)
  18. 传智播客风清扬视频-------IO简述之File讲解
  19. axios请求跨域前端解决_10、axios请求以及跨域问题,前端解决方法。11、后端-nginx解决方法...
  20. Centos使用chrony做时间同步

热门文章

  1. 【已解决】Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.
  2. Firfox flash player
  3. Unsupervised Monocular Depth Estimation From Light Field Image
  4. 计算机怎么删除共享地址,取消共享文件夹_怎么清理所有共享文件夹
  5. python小白第一天:解决python不是内部或外部命令,也不是可运行的程序或批处理文件/sublime无法显示python结果问题
  6. 计算机图形学算法【1】——直线画法(数值微分法)
  7. 关于手机的挑选的精品帖子
  8. Linux学习基本步骤
  9. Kiss技巧真人演示教材[转MOP]~~
  10. 【CSAPP+电流+梯度下降法】九阳神功-速览1