Springboot中enable注解

Posted liyong561

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot中enable注解相关的知识,希望对你有一定的参考价值。

  这句话可以作为理解springboot自动注入的原理的钥匙:ImportSelector接口的selectImports返回的数组(类的全类名)都会被纳入到spring容器中.

  至于spring怎么根据类名创建bean的就不用管了。博文地址https://www.jianshu.com/p/464d04c36fb1

public class AutoConfigurationImportSelector
		implements DeferredImportSelector, BeanClassLoaderAware, ResourceLoaderAware,
		BeanFactoryAware, EnvironmentAware, Ordered  //看这个类实现的接口多复杂
@Override
	public String[] selectImports(AnnotationMetadata annotationMetadata) {
		if (!isEnabled(annotationMetadata)) {
			return NO_IMPORTS;
		}
		AutoConfigurationMetadata autoConfigurationMetadata = AutoConfigurationMetadataLoader
				.loadMetadata(this.beanClassLoader);
		AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(
				autoConfigurationMetadata, annotationMetadata);
		return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());
	}

  这个方法就是导入了自动配置的文件的字符串。

以上是关于Springboot中enable注解的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot:如何书写一个自定义的Enable*注解

springBoot @Enable*注解的工作原理

springboot@enablescheduling注解需要导入啥jar包

SpringBoot的@Enable*注解的使用介绍

@Enable*注解的原理

SpringBoot进阶之道-@Enable模块驱动