Spring Cloud Alibaba : Nacos服务配置中心
承接上一篇学习内容: Maven改造成Spring Boot项目
一、Nacos安装
Nacos是Java编写的,需要本地有Java环境
下载地址:https://github.com/alibaba/nacos/releases

我这里用的2.0.3
找位置解压,然后切换到它的bin目录,cmd,回车
>>>>> 
黑窗口输入:startup.cmd -m standalone,回车

启动成功
访问http://127.0.0.1:8848/nacos, 用户名nacos,密码nacos


在nacos中创建配置文件


或者:

data-id的后缀与配置格式后缀相同
二、对上一篇改造成功的Spring Boot项目进一步添加Nacos的配置中心功能
2.1 在父工程hobby的pom中,引入spring cloud和nacos的包
<dependencies>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
<!-- nacos注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<!-- 依赖版本号管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
</dependencies>
</dependencyManagement>

这里,spring cloud和spring boot 与spring cloud alibaba的版本必须尽量适配,不然程序会报莫名其妙的错误
具体可以参考这里:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

2.2 将子工程hobby-admin的配置文件application.yml改名字为boostrap.yml并添加nacos配置(这里使用nacos中的yml后缀的配置文件,其实properties后缀的文件也是可以的)
server: port: 8287 spring: application: name: hobby-admin cloud: nacos: config: server-addr: 127.0.0.1:8848 extension-configs[0]: data-id: hobby-admin.yml group: DEFAULT_GROUP refresh: true

关于data-id,nacos官网有解释,可以参考:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
prefix默认为spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。spring.profiles.active即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active为空时,对应的连接符-也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}file-exetension为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension来配置。目前只支持properties和yaml类型。
2.3 在子工程hobby-admin中添加nacos的测试controller
package com.chaixy.hobby.admin.nacos; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope public class NacosConfigController { @Value("${hello}") private String hello; @RequestMapping("/hello") public String hello() { return hello; } }

这里我们要读取nacos配置中心中hello的配置值. 注意通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
2.4 启动hobby-admin,测试http://127.0.0.1:8287/hello,查看是否读取成功

2.5 修改nacos中的配置值,再次读取,看能不能在不重启hobby-admin的情况下动态读配置
>>>>> 

浙公网安备 33010602011771号