目录

一、SpringCloud配置Nacos配置中心

1、添加配置中心依赖

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

3、Nacos客户端添加配置

4、编写测试接口

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

二、SpringCloud配置Nacos为注册中心

1、添加注册中心依赖

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

3、自动注册

4、获取Nacos服务信息


前提:已有可用的Nacos服务,Nacos服务的安装与部署,

一、SpringCloud配置Nacos配置中心


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


<dependency><!--阿里nacos配置中心-->
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>

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整合mysql8 springcloud整合nacos_spring cloud

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

springcloud整合mysql8 springcloud整合nacos_spring cloud_02

 

  • 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整合mysql8 springcloud整合nacos_spring cloud_03

 

二、SpringCloud配置Nacos为注册中心

1、添加注册中心依赖

<dependency><!--阿里nacos服务注册/发现-->
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
        </dependency>

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整合mysql8 springcloud整合nacos_spring_04

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<ServiceInstance> get() {
  
        List<ServiceInstance> ServiceInstances=discoveryClient.getInstances("example");

      return ServiceInstances;
    }
}

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