![822c8dd1f305f1aefde8df34f1a1638b.png](https://img-blog.csdnimg.cn/img_convert/822c8dd1f305f1aefde8df34f1a1638b.png)
使用SpringBoot开发过程中,难免需要配置相关数据项,然后在Java代码中@Autowired注入并使用。基于SpringBoot项目,配置项一般都存放在application.properties文件中。
我们应该如何读取properties文件中的配置项呢?
有2种常用的方法:
- 使用@Value注解标注在Field上面
- 使用@ConfigurationProperties注解标注在类或者方法上
为了讲解方便,附上application.properties文件配置好的数据项
如下图所示:
![9a38a762f8957f5ff4d8af2cc4b1cef0.png](https://img-blog.csdnimg.cn/img_convert/9a38a762f8957f5ff4d8af2cc4b1cef0.png)
application.properties
我们可以看到1~3行的配置项,有一个共同的特点:有相同的前缀spring.datasource,既然具备这个特点,那么我们就可以定义一个class,里面有3个fields:userName,password,url。然后在类上使用@ConfigurationProperties标注并指定前缀spring.datasource即可,当然,SpringBoot的主入口类 XxxApplication类需要使用@EnableAutoConfiguration进行标注(在SpringBoot 2.x可省略)!
下面附上示例:
@ConfigurationProperties(prefix = "spring.datasource")public class DataSourceProperties { private String userName; private String password; private String url; }
那么,类似第5行的 web.upload.path配置项,又应该如何读取呢?
其实,我们可以使用@Value完成属性值注入field。参见以下代码块:
@Value("${web.upload.path}")private String webUploadPath;
![33fb8b0a50118c4a971fe62cf89fa151.png](https://img-blog.csdnimg.cn/img_convert/33fb8b0a50118c4a971fe62cf89fa151.png)