写在开始:一个搬砖程序员的随缘记录
一、项目配置
1、加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、加入配置
application.yml
#使热配置生效
management:
endpoints:
web:
exposure:
include: refresh
#自定义更新参数
config:
name: admin
3、配置类
package com.cn.easycode.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.stereotype.Component;
/**
* @author demo
* @date 2022/1/20 14:08
*/
@RefreshScope
@Component
@Data
@ConfigurationProperties(prefix = "config")
public class ValueConfig {
private String uuid;
}
4、controller
package com.cn.easycode.controller;
import com.cn.easycode.config.ValueConfig;
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.cloud.context.refresh.ContextRefresher;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author demo
* @date 2022/1/20 14:11
*/
@RestController
@Slf4j
public class TestController {
@Autowired
private ValueConfig valueConfig;
@Autowired
private ContextRefresher contextRefresher;
/***
* 查询自定义属性值
*
* @return java.lang.String
*/
@RequestMapping(path = "/show")
public String show() {
return valueConfig.getUuid();
}
/**
* 更新并查询自定义属性值
*
* */
@RequestMapping(path = "/refresh")
public String refresh() throws Exception {
new Thread(() -> contextRefresher.refresh()).start();
return show();
}
}
启动项目修改配置就可以看到效果
Over