SpringCloud整合nacos

一、安装nacos
1、到Nacos的github地址:https://github.com/alibaba/nacos下载nacos的window压缩包。
解压缩后修改bin目录下startup.cmd 文件为单机模式(set MODE=“standalone”),然后双击运行该文件。

二、配置Nacos管理控制台
1.命名空间(namespace)
- namespace命名空间是nacos在这里插入代码片针对于企业级开发设计用来针对于不同环境的区分,
- 比如正在企业开发时有测试环境,生产环境,等其他环境,因此为了保证不同环境配置实现隔离,提出了namespace的概念,
- 默认在nacos中存在一个public命名空间所有配置在没有指定命名空间时都在这个命名空间中获取配置,
- 在实际开发时可以针对于不能环境创建不同的namespace空间。

*注意:创建命名空间的时候如果不填空间id则会生成一个默认的id,在bootstrap.yml配置文件中要指定的是空间的id而不是名字*
这里创建一个dev的命名空间。

SpringCloud整合nacos_第1张图片
2 . 配置文件
选中一个命名空间,创建一个配置文件,配置文件的命名按 prefix−{spring.profile.active}.${file-extension} 格式。

prefix: 表示配置文件前缀,默认是spring.application.name的值,如果配置了spring.cloud.nacos.config.prefix就取prefix的值。
spring.profile.active: 表示项目使用的profile.active配置(区分环境),没有则配置文件中没有此段名称。
file-extension: 表示配置文件的后缀,目前只支持yaml和properties。
SpringCloud整合nacos_第2张图片

三、引入依赖

springBoot的版本是 2.7.2
SpringCloud的版本是 2021.0.3


<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.0modelVersion>
	<parent>
		<groupId>org.springframework.bootgroupId>
		<artifactId>spring-boot-starter-parentartifactId>
		<version>2.7.2version>
		<relativePath/> 
	parent>
	<groupId>com.examplegroupId>
	<artifactId>nacos-demoartifactId>
	<version>0.0.1-SNAPSHOTversion>
	<name>nacos-demoname>
	<description>nacos-demodescription>
	<properties>
		<java.version>1.8java.version>
		<spring-cloud.version>2021.0.3spring-cloud.version>
	properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-webartifactId>
		dependency>
		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-starterartifactId>
		dependency>


		
		<dependency>
			<groupId>com.alibaba.cloudgroupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
			<version>2021.0.1.0version>
		dependency>

		
		<dependency>
			<groupId>com.alibaba.cloudgroupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
			<version>2021.0.1.0version>
		dependency>

		
		<dependency>
			<groupId>org.springframework.cloudgroupId>
			<artifactId>spring-cloud-starter-bootstrapartifactId>
			<version>3.1.3version>
		dependency>

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

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-maven-pluginartifactId>
			plugin>
		plugins>
	build>
project>

四、添加nacos配置文件
添加bootstrap.yml文件中的配置(高版本的springcloud需要引入spring-cloud-starter-bootstrap依赖,否则会解析不了bootstrap.yml文件)

spring:
  cloud:
    nacos:
      # nacos用户名
      username: nacos
      # nacos用户密码
      password: nacos
      # nacos服务器地址
      server-addr: localhost:8848
      # nacos配置中心相关
      config:
        # 开启nacos作为配置中心,默认值:true
        enabled: true
        # 作为配置中心的nacos服务器地址,默认值:${spring.cloud.nacos:server-addr}
        server-addr: localhost:8848
        # 配置文件读取的nacos命名空间ID,默认值:public
        namespace: public
        # 配置文件在nacos命名空间中的分组,默认值:DEFAULT_GROUP
        group: DEFAULT_GROUP
        # 配置文件的文件前缀(配置文件名称),默认值:${spring.application.name}
        prefix: nacos
        # 配置文件的文件后缀(文件类型),默认值:properties
        file-extension: yaml
        # 配置内容的编码方式,默认值:UTF-8
        #encode: UTF-8
        # 获取配置的超时时间,单位:ms,默认值:3000
        timeout: 3000
        # 开启监听和自动刷新,动态感知配置变化,默认值:true
        refresh-enabled: true
        # AccessKey
        #access-key: 123
        # SecretKey
        #secret-key: 123
        # 引入共享配置(同一分组)
        shared-configs:
          # 配置支持共享的 Data Id
          - data-id: nacos.yaml
            # 配置 Data Id 所在分组,缺省默认 DEFAULT_GROUP
            group: DEFAULT_GROUP
            # 配置Data Id 在配置变更时,是否动态刷新,缺省默认 false
            refresh: true
        # 引入扩展配置(同一分组或不同分组)
        extension-configs:
          # 配置支持共享的 Data Id
          - data-id: nacos.yaml
            # 配置 Data Id 所在分组,缺省默认 DEFAULT_GROUP
            group: DEFAULT_GROUP
            # 配置Data Id 在配置变更时,是否动态刷新,缺省默认 false
            refresh: true
      # nacos注册中心相关
      discovery:
        # 开启nacos作为服务注册中心,默认值:true
        enabled: true
        # 作为注册中心的nacos服务器地址,默认值:${spring.cloud.nacos:server-addr}
        server-addr: localhost:8848
        # 服务注册在nacso上的命名空间ID,默认值:public
        namespace: public

要想实现配置信息动态刷新还需要添加@RefreshScope注解

@RequestMapping("/test")
@RestController
@RefreshScope
public class TestController {
    @Value("${test:www}")
    private String test;

    @GetMapping("/nacos")
    public String get() {
        return test;
    }

}

你可能感兴趣的:(nacos,spring,cloud,spring,boot,java)