springcloud(6) nacos配置管理
pom.xml
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-nacos-config</artifactId> <version>0.9.0.RELEASE</version> </dependency>
bootstrap.yml
spring:
application:
name: nacos-provider
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml #配置的扩展名是ymal(目前仅支持ymal和properties)
prefix: nacos-provider
profiles:
active: dev
说明:之所以需要配置 spring.application.name
,是因为它是构成 Nacos 配置管理 dataId
字段的一部分。
在 Nacos Spring Cloud 中,dataId
的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。spring.profiles.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profiles.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。
启动nacos,登陆localhost:8848/nacos,创建一个data id ,完整的配置如图所示:
写一个RestController,在Controller上添加 @RefreshScope 实现配置的热加载。代码如下:
@RestController @RefreshScope public class ConfigController { @Value("${username}") private String username; @RequestMapping("/username") public String get(){ return username; } }
访问http://localhost:8761/username,是实时更新的