spring-cloud-alibaba学习实例(2)--集成nacos-config
spring-cloud-alibaba学习实例(2)–集成nacos-config
这一小节主要讲解,使用nacos作为配置中心使用
新建一个子模块demo-nacos-config
引入jar依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
spring-cloud-starter-alibaba-nacos-config是新加入的依赖包
2 新建bootstrap.yml 配置文件
spring:
application:
name: nacos-config
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
# 如果是 .properties文件 不需要这个配置
file-extension: yaml
server:
port: 8082
3新建测试controller
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:null}")
private String useLocalCache;
@RequestMapping("/get")
public String get() {
return useLocalCache;
}
}
@RefreshScope nacos配置的数据发生改变,这个注解就能跟着动态刷新
@Value("${useLocalCache:null}") 获取nacos中存储的数据,冒号后面的是默认值,当获取不到值的时候,就会赋予默认值
4新建启动类
@SpringBootApplication
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class,args);
}
}
5启动项目
可以看到,项目开始监听nacos中dataid的值
那项目怎么知道dataid呢,这里有个默认的规则
nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 {file-extension:properties} 为前缀的基础配置,还加载了 dataid 为 {profile}.${file-extension:properties} 的基础配置。
在日常开发中如果遇到多套环境下的不同配置,可以通过 Spring 提供的 ${spring.profiles.active} 这个配置项来配置。
比如我们的spring.application.name是nacos-config,profile为null,file-extension:properties为yaml 按照规则dataid就是nacos-config.yaml,由于没有设置grop 所以group为默认的DEFAULT_GROUP
nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 {file-extension:properties} 为前缀的基础配置,还加载了 dataid 为 {profile}.${file-extension:properties} 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过 Spring 提供的 ${spring.profiles.active} 这个配置项来配置。
6,先测试下,没有配置nacos信息时候
7打开naocos-server,控制台,配置dataid
这样就可读到,nacos配置的信息了。
8测试nacos配置改变,实时刷新效果
9针对spring.profiles.active 这个属性 比如spring.profiles.active=develop
那么对应nacos的dataid就变成了nacos-config-develop
项目启动,就会监听dataid 为nacos-config-develop 的配置信息
nacos新建一个dataid 配置
github项目地址https://github.com/userliyazhou/spirng-cloud-alibaba-project-demo/tree/master/alibaba-project-parent/demo-nacos-config