有的时候我们需要动态获取一系列的配置项,假设我们在nacos配置中心的配置如下,nacos配置中心的其他设置请参考Nacos搭建流程
skill:
name:
- 爆炸
- 冲刺
在SpringCloud代码中编写配置文件呢如下
@Data @ConfigurationProperties(prefix = "skill") public class NameConf { private String[] name; }
@Configuration @EnableConfigurationProperties(NameConf.class) public class EnableNameConf { }
此时我们写一个测试的Controller如下
@RestController @RefreshScope public class TestController { @Autowired private NameConf nameConf; @GetMapping("/users-anon/shownames") public List<String> showNames() { List<String> skills = new ArrayList<>(); Stream.of(nameConf.getName()).forEach(skills::add); return skills; } }
我们对其进行测试
此时我们修改配置中心的配置文件如下
skill:
name:
- 爆炸
- 冲刺
- 格挡
并点击发布。此时再次测试如下(此时不需要重新启动Springboot应用)