@ConfigurationProperties注解的作用是可以根据一个前缀将配置文件的属性映射成一个POJO实体类,只要属性名一致就能自动注入进去,使用起来非常方便,这一点容易与@Configuration注解混淆,@Configuration也可以注解一个配置类,不一样的是它需要为每个属性再次声明绑定的字段,稍微复杂,所以推荐使用@ConfigurationProperties注解。
下面看一个简单的例子,我有一个配置文件,下面包含了多种数据结构的属性,如下:
现在我们就可以通过@ConfigurationProperties注解将其映射成一个配置类,这样使用起来就非常方便了:
这个类里面的每个属性和配置里面的属性对应,注意字段名必须是一样的才能赋值: 为了验证是否成功,我们建一个controller类,通过http://localhost:8777/test 来验证一下,看是否成功:
可以看到,已经成功注入,使用起来非常简洁,不在像spring里面还得通过一大堆xml来注入各种数据结构到Bean里面,使得代码精简了不少。
工程已经分享到github上了,感兴趣的朋友可以star:https://github.com/qindongliang/spring-boot-properties