java Nacos Config配置
springCloud学习记录
SpringCloud Alibaba Nacos Config(配置中心)
pom
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
bootstrap
在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目正常启动;bootstrap优先级高于application
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 # 注册中心
config:
server-addr: localhost:8848 # 配置中心
file-extension: yml # 这里指定的文件格式需要和nacos上新建的配置文件后缀相同,否则读不到
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 服务注册名-环境.文件后缀
# nacos-config-client-dev.yml
application
···
spring:
profiles:
active: dev # 开发环境
#active: test # 测试环境
#active: info # 开发环境
···
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class, args);
}
}
controller
@RestController
@RefreshScope // 支持nacos的动态刷新
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo(){
return configInfo;
}
}
Nacos服务上配置配置中心
Date Id:根据bootstrap文件配置的规则配置
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 服务注册名-环境.file-extension
# nacos-config-client-dev.yaml
配置格式:yaml(与bootstrap种file-extension属性一致)
配置内容:
config:
info: nacos config center,nacos-config-client-dev.yaml,version=1
分组
Data Id
创建不同的配置文件后,项目中的配置以Date Id配置规则跟着切换
Group
在bootstrap中添加group属性
namespace
添加命名空间
指定对应namespace