SpringCloudAlibaba之Nacos配置中心

第一步:引入jar包
 

<dependency> 
      <groupId>com.alibaba.cloud</groupId> 
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> 
</dependency> 

 Springcloud2022之后还要引入一个bootstrap的依赖。

第二步:在resources下创建一个bootstrap.yml文档

bootstrap.yml中就不再指定项目名称了

spring:
  cloud:
    nacos:
      config:
        server‐addr: 127.0.0.1:8848

第三步: 在nacos控制台新增加一个配置

注意:Data ID和项目名称相同才能读取到配置,Data ID也输入order-nacos

注意:这里file-extension默认是.properties的,如果nacos中指定的是其他格式,那么客户端file-extension一定要显式指定。

 添加属性

user.name=xss

user.age=23

主启动类中加入:

@SpringBootApplication
@EnableFeignClients
public class OrderNacosConfigApplication {

    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext run = SpringApplication.run(OrderNacosConfigApplication.class, args);

        while(true){
            String name = run.getEnvironment().getProperty("user.name");
            String age = run.getEnvironment().getProperty("user.age");
            System.out.println(name+"  "+age);
            TimeUnit.SECONDS.sleep(5);
        }

    }

}

-----------------------------------------------------------------------------------------------------------------------------

关于配置:

看看具体的设置:

bootstrap.yml是和配置中心有关的内容

比如:配置中心的地址,核心配置文件的扩展名等等。

bootstrap.yml的内容如下:

spring:
  cloud:
    nacos:
      config:
        server‐addr: 127.0.0.1:8848
        file-extension: yaml
        namespace: dev
        group: DEVELOP_GROUP

其中,file-extension默认是properties,但是如果nacos控制台中使用的是yaml,那么在bootstrap.yml这里一定要配置file-extension: yaml

注意:其中的file-extension: yaml只针对的是默认配置文件和profile文件

定制关于profile的配置:

制定开发环境的配置文件 application.yml

server:
  port: 8086
spring:
  application:
    name: order-nacos
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      discovery:
        username: nacos
        password: nacos
  profiles:
    active: dev

这里指定了  profiles.active=dev ,那么我们一定要在nacos配置中心创建一个DataId为   ${默认的配置文件名}-${环境标识}.${扩展后缀名}  的文件,此处后缀名必须写

 这里的后缀名一定要写,而且后缀名和file-extension一致,例如客户端配置的如果是:file-extension: yaml,那么profile文件的命名一定是:order-nacos-dev.yaml

如果想引入多个配置文件:加extension或shared

 bootstrap.yml配置如下:

注意:这里的扩展配置文件可以是properties结尾,也可以是yaml结尾的,不受   file-extension: yaml限制。

spring:
  cloud:
    nacos:
      config:
        server‐addr: 127.0.0.1:8848
        file-extension: yaml
        namespace: dev
        group: DEVELOP_GROUP
        shared-configs:
          - data-id: common.properties
            group: DEFAULT_GROUP
        extension-configs[0]:
            data-id: common02.properties
            group: DEFAULT_GROUP


配置文件读取的优先级:

profile>默认>extension>shared

namespace是更高级的隔离,group是更普通的隔离。

通过@Value获得配置文件里的值:也想实时更新,在类上加上@RefreshScope

当使用@RefreshScope的时候,有个和定时任务相关的坑:定时任务在配置被修改了之后不好使了,这时候该类集成ApplicationListener<RefreshScope...>的一个接口,在重写的方法中重新调用定时任务就可了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值