Nacos配置管理——配置热更新
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos配置管理——配置热更新相关的知识,希望对你有一定的参考价值。
文章目录
Nacos配置热更新
我们引入Nacos配置中心的最终目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。
要实现配置热更新,可以使用两种方式:
1.方式一
在@Value注入的变量所在类上添加注解@RefreshScope:
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController
@Value("$pattern.dateformat")
private String dateformat;
@GetMapping("now")
public String now()
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
访问没有问题:
2.方式二
使用@ConfigurationProperties注解代替@Value注解。
在user-service服务中,添加一个类,读取patterrn.dateformat属性:
package com.yyl.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties
private String dateformat;
在UserController中使用这个类代替@Value,然后通过成员变量的get 方法拿到这个值。
package com.yyl.user.web;
import com.yyl.user.config.PatternProperties;
import com.yyl.user.pojo.User;
import com.yyl.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController
// @Value("$pattern.dateformat")
// private String dateformat;
@Autowired
private PatternProperties patternProperties;
@GetMapping("now")
public String now()
// return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
在进行请求也是没问题的:
以上是关于Nacos配置管理——配置热更新的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud之Nacos配置管理(热共享更新配置集群搭建)
SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧