spring boot项目整个项目的配置文件为application.yml
文件。java项目以前的配置文件的主流写法是使用.properties
文件,而随着yaml文件格式的普及,更推荐使用.yml
或.yaml
文件。
以使用阿里云的OSS服务为例,需要为其配置一些参数。一般为了避免将参数硬编码进代码中,推荐将这些参数配置进配置文件中。这带来了一个新问题,就是如何将配置文件中的参数注入到程序中。一个做法是使用@Value
注解(这是spring框架提供的一个注解)。不过另一种推荐的做法步骤如下:
- 定义一个实体类,保存相关的配置参数。
- 加上
@ConfigurationProperties
注解,并指定配置项的前缀。 - 注意该实体类各属性名字需要与配置项名字一致。
@Data // lombok注解
@Component // spring boot的IoC托管
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliyunOSSProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;
}
到此为止,代码就可以正常运行了,可以在其他模块中通过依赖注入直接使用该配置实体类的对象,从而获取配置参数。不过还可以进行一个可选的操作,就是引入一项spring boot configuration processor的依赖。引入该依赖之后,我们定义了配置项的实体类之后,在配置文件中填入具体配置参数时就可以进行补全了。稍微具体点来说,它通过生成配置元数据文件(json格式)使得开发者和IDE更容易理解和使用配置属性,最直观的用途就是提供了自动补全。