nacos配置部署与管理

配置文件

首先新建配置文件

  • Data ID:配置文件的名称(唯一)
  • 命名规范:服务名称-运行环境-后缀名(一般使用你yaml)
  • Group:分组名称,一般使用默认
  • 配置内容:一般填写需要频繁更换修改的配置,例如:一些开关,参数之类的

配置获取顺序:

项目启动>>读取bootstrap.yml文件>>读取nacos配置文件>>读取本地配置文件application.yml>>创建spring容器>>加载bean
因为读取nacos配置文件的优先级要比application的优先级高,所以nacos的配置信息放在application里就不能满足我们的需求,所以spring提供了一个bootstrap的文件,它的优先级要比nacos高,我们习惯把nacos的配置信息存放在bootstrap中

  1. 引入nacos的配置管理客户端依赖
        <!--        nacos配置-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

  1. 创建bootstrap.yml文件配置nacos信息
spring:
  application:
    name: userservice #服务名称
  profiles:
    active: dev #开发环境
  cloud:
    nacos:
      config:
        file-extension: yaml #文件后缀名
      server-addr: localhost:8848 #nacos地址
  1. 通过@value注解获取相应的配置信息
@Component
@Data
public class Confix {
    
    
    @Value("${pattern.dataformat}") //yyyy-MM-dd HH:mm:ss
    private String dataformat;
}

    @Autowired
    private Confix confix;
    @GetMapping("/get")
    public String now(){
    
    
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(confix.getDataformat()));
    }

nacos配置热部署

  • 方式一:@RefreshScope

 通过@RefreshScope注解可以实现配置的热部署,经过@RefreshScope注解修饰的bean,将被RefreshScope进行代理,用来实现配置、实例热加载,即当配置变更时可以在不重启应用的前提下刷新bean中相关的属性值


@Component
@Data
@RefreshScope
public class Confix {
    
    
    @Value("${pattern.dataformat}")
    private String dataformat;
}

  • 方式二:@ConfigurationProperties

 使用@ConfigurationProperties注解标注配置类,在通过Nacos发布配置后,配置类会被重新rebind,此时变量动态修改生效,使用的地方通过@Autowired注入。

@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class Confix {
    
    
    private String dataformat;
}

前缀名(@ConfigurationProperties(prefix = "pattern"))和变量名(dataformat)拼接后要和配置文件一致

猜你喜欢

转载自blog.csdn.net/weixin_58286934/article/details/128490404