1.前言我们经常会遇到一些在开发过程中可能会发生变化的值,比如数据库密码和一些关键链接的配置和很快。我们需要写在配置文件中,这样我们就可以把这些配置文件放到nacos上进行管理,修改nacos的配置,我们发布的包可以动态更新,不需要重新修改包和重新发送包裹!今天就来说说读取配置文件中值的两种常用方法。刚刚说的动态更新配置就是第二种配置!@Value("${school.teacher}")不会动态更新,所以我推荐使用第二种方法@ConfigurationProperties(prefix="school")读取配置文件!下面小编也会给大家展示一下,不用重启项目也可以动态更新,在生产中非常有用!2.第一种方式第一种方式比较场景也是最简单的,就是@Value($(配置文件中的参数))。我们先在application.yml文件中写一个配置:学校:老师:王老师学生:小明这里key的冒号后面要有一个空格,字符串不需要加双引号!为了方便,我们直接在controller中演示!!@RestController@RequestMapping("/test")@Slf4j@RequiredArgsConstructorpublicclassTestController{@Value("${school.teacher}")privateStringteacher;@Value("${school.student}")私人字符串学生;@GetMapping("/testValue")publicResulttestValue(){returnResult.success(teacher+"--->"+student);}}让我们调试看看我们是否可以读取配置中的值!我们可以看到这是值得的!3.第二种方法(推荐)小编推荐这种方法。虽然看起来比@Value麻烦很多,但是更加规范。配合nacos也可以动态修改,即时生效。小编就带大家去试试吧!!为什么推荐这种方法?因为都是用这个方法来配置spring的,所以跟着官方也没什么问题!1.修改yml文件我们刚刚修改了yml配置文件,让类型更加丰富!school:teacher:王老师studentList:-小明-小刚2.写一个读取映射的类importjava.util.List;/***@authorwangzhenjun*@date2022/8/179:04*///必须交给spring容器,否则取不到值@Component//Configuration读取yml文件中所有前缀为school开头的配置可以读取@ConfigurationProperties(prefix="school")//必须有get方法,否则取不到值@DatapublicclassSchool{//名称必须与yml一致privateStringteacher;privateList
