在做项目的时候需要使用代码实现读取properties文件内容,使用@value(name=”xxx”)去读取,但是当参数变多的时候,通过@value操作就显得臃肿。springboot提供了更加简单的操作:那就是通过@ConfigurationProperties一次性读取并映射到javabean。
注意:1:此注解只适合项目有一个属性文件,如果大型项目用到了多个属性文件,需要另做处理,需指定@ConfigurationProperties读取的属性文件!
@ConfigurationProperties(prefix = “dolphin”, locations = “classpath:dolphin.properties”)
2:默认读取的是properties文件,可能有的项目配置的yml格式,所以要注意符合的变化点要编程冒号!
@ConfigurationProperties(ignoreUnknownFields = false, prefix = “ftp:client”)
最近在项目中做一个ftp自动上传下载文件的功能,学习之余就用到了@ConfigurationProerties。首先在properties文件中加入如下配置信息
然后写一个实体类,用于存储映射的信息,并加上注解@ConfigurationProerties和@Component,当然也可以通过@Bean注入的。
参数一:value:
前缀,用于识别properties文件里需要映射的内容,如果拿ftp地址例子来讲,就是映射的属性host加上前缀ftp.client后即是ftp.client.host的内容
参数二:prefix:
前缀,用于识别properties文件里需要映射的内容,如果拿ftp地址例子来讲,就是映射的属性host加上前缀ftp.client后即是ftp.client.host的内容
参数三:ignoreUnknownFields:
映射properties的字段中如果夹杂着未知的字段,将被忽略。例如:当配置文件中有一个或多个属性未绑定到实体类时或属性名字出错或已被删除了,这时候对于实体类,properties里的属性是未知的。这种情况我们希望程序启动失败,这时候就将此参数设置为false即可
参数四:ignoreInvalidFields:
指示绑定到此对象时应忽略无效字段。根据所使用的活页夹,Invalid表示无效,通常这表示无效类型错误的字段(或不能强制转换为正确类型的字段)。(默认为false):如properties的数字属性绑定到实体类字符类型的变量上。这时候我们期望程序启动失败,设置false即可!
参数五:ignoreNestedProperties:
标记当绑定到这个对象字段的名字中带有句号(即”.”)时应该被忽略。默认false。就可以理解为properties属性里有多余的字符.
参数六:exceptionIfInvalid:
该类用{@link Validated @Validated}注释,验证失败,则应引发异常,如果设置为false,验证错误将被吞噬。它们会被记录下来,但是没有传播到调用者。(默认为true)