1.添加依赖
<!-- nacos服务配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.修改配置文件
将项目中的application.yml的名字修改为bootstrap.yml配置文件(启动优先级最高)
spring:
application:
name: sca-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yml # Configure the data format of the content, default to properties
3.nacos配置(动态配置)
打开nacos配置中心,新建配置
其中Data ID的值要与bootstrap.yml中定义的spring.application.name的值相同(服务名-假如有多个服务一般会创建多个配置实例,不同服务对应不同的配置实例)
4.添加命名空间介绍
修改项目module中的配置文件bootstrap.yml,添加如下配置
spring:
cloud:
nacos:
config:
namespace: b1e22a97-419a-4b87-8903-48ce4b33e3c6
……
5.分组实现
配置发布以后,修改boostrap.yml配置类,在其内部指定我们刚刚创建的分组
server:
port: 8070
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
group: DEV_GROUP_51 # Group, default is DEFAULT_GROUP
file-extension: yml # Configure the data format of the content, default to properties
namespace: b1e22a97-419a-4b87-8903-48ce4b33e3c6
6.共享配置设计和读取
当同一个namespace的多个配置文件中都有相同配置时,可以对这些配置进行提取,然后存储到nacos配置中心的一个或多个指定配置文件,哪个微服务需要,就在服务的配置中设置读取即可
在指定的微服务配置文件(bootstrap.yml)中设置对共享配置文件的读取
spring:
application:
name: nacos-config
cloud:
nacos:
config:
server-addr: localhost:8848
# 命名空间
namespace: 83ed55a5-1dd9-4b84-a5fe-a734e4a6ec6d
# 分组名
# group: DEFAULT_GROUP
# 配置中心文件扩展名
file-extension: yml
# 共享配置
shared-configs[0]:
data-id: app-public-dev.yml
group: DEFAULT_GROUP
refresh: true #默认false
在指定的业务类中读取和应用共享配置即可
@Value("${page.pageSize:10}")
private Integer pageSize;
@GetMapping("/provider/doGetPageSize")
public String doGetPageSize(){
//return String.format()
return "page size is "+pageSize;
}