SpringCloud集成Nacos配置中心注册中心实例详解

目录

一、SpringCloud配置Nacos配置中心

1、添加配置中心依赖

2、bootstrap.yaml添加配置中心配置

3、Nacos客户端添加配置

4、编写测试接口

5、启动项目访问测试接口

二、SpringCloud配置Nacos为注册中心

1、添加注册中心依赖

2、bootstrap.yaml添加注册中心配置

3、自动注册

4、获取Nacos服务信息


前提:已有可用的Nacos服务,Nacos服务的安装与部署,可以查看:写文章-CSDN博客

一、SpringCloud配置Nacos配置中心

1、pom.xml中添加阿里nacos配置中心

    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-config
    2.2.3.RELEASE

2、配置bootstrap.yaml文件

spring:
  # 应用配置
  application:
    # 应用名称
    name: example
  # 环境配置
  profiles:
    # 生效配置 默认为:dev
    active: dev
  cloud:
    nacos:
      # nacos配置地址
      server-addr: 192.168.65.56:8848
      config:
        # 命名空间,可以不设置,默认放到public空间,一般按照环境命名
        namespace: 1d93e4d9-0ba6-427d-be74-8250748463f5
#        # 分组可以不设置,默认放到DEFAULT_GROUP分组,一般按照项目或者应用分组
#        group: demo
        # 文件格式,nacos中的配置文件格式,只支持yaml和properties,不设置默认是properties格式
        file-extension: yaml


3、Nacos客户端添加配置

 新建命名空间dev

SpringCloud集成Nacos配置中心注册中心实例详解_第1张图片

dev命名空间下新增配置文件

SpringCloud集成Nacos配置中心注册中心实例详解_第2张图片

 

  • Data Id 的格式是 ${prefix}-${spring.profile.active}.${file-extension}
  • ${prefix} 的值,默认为 spring.application.name 的值
  • ${spring.profile.active}表示项目当前所处的环境
  • ${file-extension} 表示配置文件的扩展名

这里设置的

Data_ID:example.yaml,如果设置了文件类型一定要加上后缀,默认properties

Group:默认即可。如果设置了bootstrap.yaml中需要添加group配置

文件类型选择:yaml配置内容:

nacos:
  http_url: http://www.baidu.com

4、编写测试接口

package com.example.demo;
import com.alibaba.nacos.api.config.annotation.NacosValue;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope  //nacos配置文件动态刷新
public class TestNacos {

    @Value(value = "${nacos.http_url}")//
    private String httpUrl;
    @RequestMapping(value = "/get")
    @ResponseBody
    public String get() {
      System.out.println("0000000000000000000000"+httpUrl);

      return httpUrl;
    }
}

1、通过@Value(value = "${nacos.http_url}")注解获取nacos配置

2、添加nacos配置文件动态刷新注解@RefreshScope 

5、启动项目

访问地址:http://localhost:8080/get,返回如下页面数据

SpringCloud集成Nacos配置中心注册中心实例详解_第3张图片

 

二、SpringCloud配置Nacos为注册中心

1、添加注册中心依赖


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            ${spring-cloud-alibaba.version}
        

2、bootstrap.yaml添加注册中心配置

# 服务发现配置
discovery:
  # 命名空间
  namespace: 1d93e4d9-0ba6-427d-be74-8250748463f5
  # 分组
  group: demo

全量配置文件:

spring:
  # 应用配置
  application:
    # 应用名称
    name: example
  # 环境配置
  profiles:
    # 生效配置 默认为:dev
    active: dev
  cloud:
    nacos:
      # nacos配置地址 从环境变量获取 默认为:192.168.90.135:8848
      server-addr: 192.168.65.56:8848
      #配置中心配置
      config:
        # 命名空间,可以不设置,默认放到public空间,一般按照环境命名
        namespace: 1d93e4d9-0ba6-427d-be74-8250748463f5
        # 分组可以不设置,默认放到DEFAULT_GROUP分组,一般按照项目或者应用分组
        group: demo
        # 文件格式,nacos中的配置文件格式,只支持yaml和properties,不设置默认是properties格式
        file-extension: yaml

      # 服务发现配置
      discovery:
        # 命名空间
        namespace: 1d93e4d9-0ba6-427d-be74-8250748463f5
        # 分组
        group: demo

3、自动注册

启动类增加@EnableDiscoveryClient 注解,开启服务的注册与发现,启动应用,查看Nacos客户端是否有服务

SpringCloud集成Nacos配置中心注册中心实例详解_第4张图片

4、服务的发现

测试类注入:DiscoveryClient对象,获取服务信息类表。

package com.example.demo;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.List;

@RestController
public class SQLTestController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @RequestMapping(value = "/get")
    public List get() {
  
        List ServiceInstances=discoveryClient.getInstances("example");

      return ServiceInstances;
    }
}

访问 接口:http://localhost:8080/get出现服务示例信息数据。

SpringCloud集成Nacos配置中心注册中心实例详解_第5张图片

 

你可能感兴趣的:(Spring,Cloud,spring,cloud,java)