赞
踩
该类故名思意就是自动装配包,其内部有个@Import(AutoConfigurationPackages.Registrar.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AutoConfigurationPackages.Registrar.class)
public @interface AutoConfigurationPackage {
/** * {@link ImportBeanDefinitionRegistrar} to store the base package from the importing * configuration. */ static class Registrar implements ImportBeanDefinitionRegistrar, DeterminableImports { @Override public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) { register(registry, new PackageImports(metadata).getPackageNames().toArray(new String[0])); } @Override public Set<Object> determineImports(AnnotationMetadata metadata) { return Collections.singleton(new PackageImports(metadata)); } }
它就是用来注册bean的定义的
参数一:metadata
它就是用来获取启动类的信息的,获取该类所在的包,就可以配合 registry 参数了
参数二:registry
它就是用来做bean注册的
@AutoConfigurationPackage的作用相似于
<context:component-scan base-package="org.example"/>
通过注解解析FirstSpringApplication类,获取了所在的包com.ff.springboot,作为扫描器的base-package,然后添加到容器中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。