zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    老婆和老媽同時掉在了水裡终于有答案了
    js对象序列化为json字符串
    基于jQuery的单据输入
    重发我的 HTML单据输入控件
    Spring MVC 实现REST风格API版本控制
    匿名方法和Lambda 表达式
    委托的定义和委托的实例化和使用
    LINQ进阶
    C#3.0的新特性
    使用 var 和 object 声明变量有什么区别?
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/7942634.html
Copyright © 2011-2022 走看看