Nacos(三)-Nacos Spring Cloud-配置中心

前两篇记录了下载安装nacos、使用nacos作为注册中心:

  • Nacos(一)-下载安装
  • Nacos(二)-Nacos Spring Cloud-注册中心

本篇记录使用nacos作为配置中心,并通过配置页面修改配置进行动态刷新演示

一、项目介绍

继续使用上一篇创建的项目nacos,创建新module cloud-config:
Nacos(三)-Nacos Spring Cloud-配置中心_第1张图片

二、开发配置

1、添加依赖

pom.xml

<properties>
		<java.version>1.8java.version>
		<spring-cloud.version>Finchley.SR2spring-cloud.version>
	properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloudgroupId>
				<artifactId>spring-cloud-dependenciesartifactId>
				<version>${spring-cloud.version}version>
				<type>pomtype>
				<scope>importscope>
			dependency>
		dependencies>
	dependencyManagement>


	<dependencies>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-webartifactId>
		dependency>

		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
			<version>0.9.0.RELEASEversion>
		dependency>

		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-testartifactId>
			<scope>testscope>
		dependency>
	dependencies>

主要包含:

  • SpringCloud配置
  • alibaba-nacos-config
    这里与注册中心不同的是config,两个可以单独使用

2、添加配置

bootstrap.properties

spring.application.name=cloud-config
server.port=30400

spring.cloud.nacos.config.server-addr=192.168.1.125:8848

配置Nacos server 的地址和应用名
这里配置文件必须使用bootstrap文件名,并且需要配置spring.application.name,具体原因见下面介绍 Nacos 配置管理 dataId部分

3、编写接口

@RestController
@RequestMapping("user")
@RefreshScope
public class UserController {

    @Value("${userName:123}")
    private String userName;

    @RequestMapping("/get")
    public String get() {
        return userName + " hello";
    }
}

使用@Value注解读取配置userName;
使用Spring Cloud原生注解 @RefreshScope 实现配置自动更新

4、验证

启动服务,并用postman访问接口:
Nacos(三)-Nacos Spring Cloud-配置中心_第2张图片
注:这里因为读取的键为userName,读取的是电脑配置的用户名,使用其他名字将会打印 123 hello

三、修改配置

打开nacos页面配置列表,点“+”号:
Nacos(三)-Nacos Spring Cloud-配置中心_第3张图片
新建配置
Nacos(三)-Nacos Spring Cloud-配置中心_第4张图片
点击页面下方发布按钮,确认发布后,看服务日志:
在这里插入图片描述
再次访问接口:
Nacos(三)-Nacos Spring Cloud-配置中心_第5张图片
可以看到配置已经更新

四、配置分析

1、Data Id

Data Id 是nacos用来定定位配置内容的,完整格式为:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix :默认为 spring.application.name,(也可以通过配置项 spring.cloud.nacos.config.prefix来配置)
  • spring.profile.active : 即为当前环境对应的 profile,例如dev,当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成:
 ${prefix}.${file-extension}
  • file-exetension : 为配置内容的数据格式,(可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型

因此,本例配置spring.application.name为cloud-config,配置文件格式为properties,则Data Id 为“cloud-config.properties”

2、Group

配合Data Id 一起定位配置内容,暂时不修改,使用默认即可DEFAULT_GROUP

五、更多操作

1、查看历史版本

点击配置管理->历史版本,输入Data Id,Group,点击查询,可以看到配置的历史版本,并可以查看详情,或者回滚:
Nacos(三)-Nacos Spring Cloud-配置中心_第6张图片

六、参考链接

  • Nacos Spring Cloud 快速开始
  • Spring Cloud Alibaba基础教程:使用Nacos作为配置中心

你可能感兴趣的:(学习)