SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧相关的知识,希望对你有一定的参考价值。
1. 配置热更新
Nacos中的配置文件变更后,微服务无需重启就可以感知。可以需要通过下面两种配置实现:
1.1 方式一:在@Value注入的变量所在类上添加注解@RefreshScope
1.2 方式二:使用@ConfigurationProperties注解(推荐使用)
新建一个配置类PatternProperties.java
package cn.itcast.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data // 提供get/set方法
@Component // 把这个类注入到IOC
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties
private String dateformat; // 匹配 pattern.dateformat 自动更新
替换原来的获取dateformat的那一系列配置:
UserController.java
package cn.itcast.user.web;
import cn.itcast.user.config.PatternProperties;
import cn.itcast.user.pojo.User;
import cn.itcast.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Slf4j
@RestController
@RequestMapping("/user")
//@RefreshScope
public class UserController
@Autowired
private UserService userService;
// @Value("$pattern.dateformat")
// private String dateformat;
@Autowired
private PatternProperties properties;
@GetMapping("now")
public String now()
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
/**
* 路径: /user/110
*
* @param id 用户id
* @return 用户
*/
@GetMapping("/id")
public User queryById(@PathVariable("id") Long id)
return userService.queryById(id);
效果展示:
1.3 小结
2. 多环境配置共享
有的配置是多个环境共享的,这样就可以把这一部分的配置单独放在一个配置文件里面,方面以后修改。
配置环境的优先级:
小结:
3. IDEA按不同环境启动的小技巧
原始方式:
我们平时在配置启动环境的时候都是手动修改配置环境再次启动。
但是这样每次都会更改代码,不是很方便。
小技巧:
以上是关于SpringCloud Nacos配置管理 -- 配置热更新多环境配置共享IDEA按不同环境启动的小技巧的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud 核心组件Nacos配置管理&配置拉取第4章
SpringCloud学习笔记-p2(Nacos注册中心&Nacos配置管理)