在Java
生态中的人,可能对BeanFactory
接口并不陌生,它在Spring
中的作用太重要了。快速看下这个接口的签名:
从接口中提供的方法可以看到主要都是和spring
中bean
相关的,读取bean
,判断bean
等。方法主要有这几类:
getBean
简而言之就是要通过这个方法拿到一个bean
getBeanProvider
看名字就知道是获取到一个bean
的provider
containsBean
是否包含beanisSingleton
是否是单例 相关概念可以查看设计模式isPrototype
是否是原型状态 概念上和设计模式中的原型模式类似isTypeMatch
判断目标bean
和制定的类型是否匹配getType
获取bean
点的类型getAliases
读取指定bean
名的别名
访问
Spring Bean
容器的根接口
看到官方的这个解释,就更能明白,这个接口的在Spring
中的江湖地位。Bean
在Spring
中是什么呢?在学校里面,学习面向对象的时候,老师告诉你一切皆对象,在这里你姑且可以认为在spring
中一切皆是bean
。
在接口中涉及到几个类,如下:
ObjectProvider
官方的说明大体是 专为注射点设计的变体 ObjectFactory ,允许程序化可选和宽松的非唯一处理,这里咱们先简单记住。ResolvableType
官方说明答题时封装 Java 类型,提供对超类型、接口和泛型参数的访问,以及最终解析为类的能力,也是死先简单记住。
一定要记住这个接口,是访问spring bean容器的根接口,后续详细介绍相关实现。