目录
一、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
dev命名空间下新增配置文件
- 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为注册中心
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客户端是否有服务
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出现服务示例信息数据。