• spring framework源码之AnnotationConfigApplicationContext


    AnnotationConfigApplicationContext

      内部使用了AnnotatedBeanDefinitionReader;ClassPathBeanDefinitionScanner

    /**
         使用AnnotatedBeanDefinitionReader读取配置类*/
        public void register(Class<?>... annotatedClasses) {
            Assert.notEmpty(annotatedClasses, "At least one annotated class must be specified");
            this.reader.register(annotatedClasses);
        }
    
        /**
         使用ClassPathBeanDefinitionScanner扫描指定包*/
        public void scan(String... basePackages) {
            Assert.notEmpty(basePackages, "At least one base package must be specified");
            this.scanner.scan(basePackages);
        }
    
        /**
        使用AnnotatedBeanDefinitionReader注册一个bean,使用指定的构造函数。*/
        public <T> void registerBean(Class<T> annotatedClass, Object... constructorArguments) {
            registerBean(null, annotatedClass, constructorArguments);
        }
        public <T> void registerBean(@Nullable String beanName, Class<T> annotatedClass, Object... constructorArguments) {
            this.reader.doRegisterBean(annotatedClass, null, beanName, null,
                    bd -> {
                        for (Object arg : constructorArguments) {
                            bd.getConstructorArgumentValues().addGenericArgumentValue(arg);
                        }
                    });
        }
        @Override
        public <T> void registerBean(@Nullable String beanName, Class<T> beanClass, @Nullable Supplier<T> supplier,
                BeanDefinitionCustomizer... customizers) {
            this.reader.doRegisterBean(beanClass, supplier, beanName, null, customizers);
        }

     AnnotatedBeanDefinitionReader

  • 相关阅读:
    出错处理函数abort、exit、atexit、strerror. . .
    linux查询系统信息命令
    [转载]比google和百度强十倍的搜索类网站
    陶  朱  商  经
    ip的划分,超详细.【网管常识】
    linux的hostname修改详解
    勤于寻找谈话资料
    Windows常用命令集
    C语言中printf格式
    How to disable SELinux
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/7942634.html
Copyright © 2020-2023  润新知