功能
將屬性文件與一個Java類綁定,屬性文件中的變量與Java類中的成員變量一一對應,無需完全一致。
如需將 @ConfigurationProperties 注解的目標類添加到Spring IOC容器中,可以
- 使用 @Component 注解目標類,這樣項目啟動時會自動將該類添加到容器中。
- 使用 @EnableConfigurationProperties 間接的將 @ConfigurationProperties 注解的目標類添加到容器中。講的詳細點就是,使用 @ConfigurationProperties 注解 類A,使用 @EnableConfigurationProperties(value = 類A.class) 注解類B,那么容器在加載類B的時候,會先加載類A到容器中,實現了間接的加載。
源碼
package org.springframework.boot.context.properties; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor; @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties { /** * 屬性文件中變量的前綴 * 如果變量的全名是server.port,那么value==server。 */ @AliasFor("prefix") String value() default ""; /** * 屬性文件中變量的前綴 * 如果變量的全名是server.port,那么prefix==server。 */ @AliasFor("value") String prefix() default ""; /** * 是否忽略類型不匹配的錯誤 */ boolean ignoreInvalidFields() default false; /** * 是否忽略屬性變量對應的字段不存在的錯誤 */ boolean ignoreUnknownFields() default true; }