美文网首页
Spring -- by name 和 by type

Spring -- by name 和 by type

作者: qiyinger | 来源:发表于2019-03-13 15:28 被阅读0次
        /** by name注入的bean key为name, value 为BeanDefinition */
        private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256);
    
        /** by type注入(包括单例) key为bean的类型, value 为相应类型的所有bean的name数组 */
        /** Map of singleton and non-singleton bean names, keyed by dependency type. */
        private final Map<Class<?>, String[]> allBeanNamesByType = new ConcurrentHashMap<>(64);
    
        /** by type注入 单例*/
        /** Map of singleton-only bean names, keyed by dependency type. */
        private final Map<Class<?>, String[]> singletonBeanNamesByType = new ConcurrentHashMap<>(64);
    

    这是BeanFactory中存储BeanDefinition的Map,Spring 是默认进行by type 自动注入的,所以当同一类型的BeanDefinition有多个时,是无法确定是哪一个BeanDefinition的,需要通过by name的方式注入

    相关文章

      网友评论

          本文标题:Spring -- by name 和 by type

          本文链接:https://www.haomeiwen.com/subject/xyqtmqtx.html