不管学习什么技术,官网永远是第一选择。
官网: 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. 关于输入输出流的心得
  2. [转]Oracle 执行计划(Explain Plan) 说明
  3. 从Python代码到APP,你只需要一个小工具:GitHub已超3000星
  4. 【深度学习】实战深度学习检测疟疾
  5. VTK:可视化之SelectWindowRegion
  6. Hadoop企业优化
  7. 见证开户_见证中的发现
  8. 2019 年度程序员吸金榜:你排第几?
  9. JasperReports项目中的应用
  10. POJ2942 Knights of the Round Table 点双连通分量,逆图,奇圈
  11. 百度文库下载工具(引言及使用教程)
  12. ubuntu16.04 Detectron目标检测库配置(包含GPU驱动,Cuda,Caffee2等配置梳理)
  13. CommandName 限制
  14. 设置div中的背景颜色及div中的字体颜色
  15. 测试基础--测试方法
  16. 计算机基础与应用说课ppt课件,广东省“XX杯”说课大赛计算机应用基础类一等奖作品:PPT写字动画的制作现场说课课件.ppt...
  17. 静态库,动态库是啥,有啥区别(静态函数库/动态函数库)
  18. Windows10删除蓝牙设备
  19. 让应用程序禁止Windows屏幕保护
  20. FFmpeg —— 查看NVIDIA显卡对硬件加速的支持

热门文章

  1. 【学习笔记】SpringMVC—@RequestMapping注解
  2. 萌新带你开车上p站(完结篇)
  3. ognl表达式的研究
  4. java计算机毕业设计合同管理源码+mysql数据库+系统+lw文档+部署
  5. 分治法解决计算凸包问题
  6. 核心能力:产品认知能力
  7. 游戏汉化教程1-汉化流程
  8. vue2 使用富文本插件 vue-tinymce(tinymce)
  9. 小米电视6和小米电视6至尊版区别
  10. codeforces 584A