Nacos实现热更新的方式有俩种:
方式一:
在Nacos配置中心,配置你要热更新对应的服务及热更新的配置内容(不是所有的配置都可以实现热更新,比如数据库等不可以热更新,什么可以热更新呢?比如什么什么的开关等)。这里以我写的Demo为例,实现一个时间格式的热更新。如下图所示
在Java 代码中,
// 需要在@Value所在的类上,加注解@RefreshScope 实现热更新
// 使用@Value注解注入yaml配置内容
@Value("${pattern.dateformat}")
private String dateformat;
实现方式二:
在所需要实现热更新的服务项目内,自定义一个配置类,并交给spring去管理
@Data
@Component // 把该类声明成一个bean对象,交给spring管理
// 绑定配置文件中的配置,prefix属性提供配置前缀
@ConfigurationProperties(prefix = "pattern")
public class Pattern {
private String dateformat;
}
注入该类的bean对象,并通过getXXX()方法获取属性的值(就是配置中的值)
@Autowired
private Pattern pattern;
/**
* 获取当前时间
* @return
*/
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern.getDateformat()));
}