美文网首页
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