欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot : @EnableConfigurationProperties -- 注册使用 @ConfigurationProperties 的 bean

程序员文章站 2022-04-27 20:25:30
...

@EnableConfigurationPropertiesSpring Boot提供的一个注解,使用该注解用于启用应用对另外一个注解@ConfigurationProperties的支持。使用注解@ConfigurationPropertiesbean可以通过标准方式注册到容器,比如使用注解@Bean;也可以使用该注解注册到容器,如下用法所示 :

@EnableConfigurationProperties(SecurityProperties.class)
//...
public class SecurityAutoConfiguration {
    // ...
}

EnableConfigurationProperties只定义了一个value属性,用于设置一组使用了注解@ConfigurationProperties 的类,用于作为 bean 定义注册到容器中。

EnableConfigurationProperties完成配置属性bean注册的具体任务是委托给了所导入的类EnableConfigurationPropertiesImportSelector来完成的。

源代码

源代码版本 : 5.1.4.RELEASE

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.context.annotation.Bean;
import org.springframework.context.annotation.Import;


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(EnableConfigurationPropertiesImportSelector.class)
public @interface EnableConfigurationProperties {

	/**
	 * Convenient way to quickly register ConfigurationProperties annotated beans
	 * with Spring. Standard Spring Beans will also be scanned regardless of this value.
     * 返回一组使用了注解 @ConfigurationProperties 的 bean, 用于作为 bean 定义注册到容器中。
     * 注意 : 不管这里设置了什么值,容器在相关bean上标准的Spring Bean扫描***制还是会正常进行。
	 * @return ConfigurationProperties annotated beans to register
	 */
	Class<?>[] value() default {};

}