springIOC源码接口分析(五):ListableBeanFactory
一 继承关系
二 定义方法
- /**
- 根据给出的BeanName判断是否包含该Bean定义,忽略由SingletonBeanRegistry的方法注册的Singleton Bean
- */
- boolean containsBeanDefinition(String beanName);
- /**
- 返回Bean定义的数目,忽略由SingletonBeanRegistry的方法注册的Singleton Bean
- */
- int getBeanDefinitionCount();
- /**
- 返回所有Bean的BeanName组成的String数组
- */
- String[] getBeanDefinitionNames();
- /**
- 根据提供的类型返回匹配的BeanName数组
- 只检测顶层Bean,忽略嵌套Bean
- 对于FactoryBean,当提供的类型匹配FactoryBean.getObjectType时返回BeanName
- 当提供的类型匹配FactoryBean时返回&BeanName
- */
- String[] getBeanNamesForType(ResolvableType type);
- String[] getBeanNamesForType(@Nullable Class<?> type);
- /**
- * includeNonSingletons:判断是否匹配除Singleton外的其他scope
- * allowEagerInit: false只匹配FactoryBean本身,true时还匹配FactoryBean.getObjectType()
- */
- String[] getBeanNamesForType(@Nullable Class<?> type, boolean includeNonSingletons, boolean allowEagerInit);
- /**
- 根据提供的类型返回匹配的Bean实例数组
- 只检测顶层Bean,忽略嵌套Bean
- 对于FactoryBean,当提供的类型匹配FactoryBean.getObjectType时返回BeanName
- 当提供的类型匹配FactoryBean时返回&BeanName
- */
- <T> Map<String, T> getBeansOfType(@Nullable Class<T> type) throws BeansException;
- /**
- 作用同上
- includeNonSingletons:判断是否匹配除Singleton外的其他scope
- allowEagerInit: false只匹配FactoryBean本身,true时还匹配FactoryBean.getObjectType()
- */
- <T> Map<String, T> getBeansOfType(@Nullable Class<T> type, boolean includeNonSingletons, boolean allowEagerInit)
- throws BeansException;
- /**
- 根据提供的注解类型找到对于的BeanName数组,
- 不创建实例, 但FactoryBean类型将被初始化,因为该方法考虑FactoryBean创建的对象
- */
- String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType);
- /**
- 根据提供的注解类型找到对于的Bean实例数组,
- FactoryBean类型将被初始化,因为该方法考虑FactoryBean创建的对象
- */
- Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType) throws BeansException;
- /**
- 根据提供的注解类型和beanNaeme找到对应的Bean,Bean的类类型本身找不到,则遍历它的
- 接口和超类
- 如果不存在该Bean,则抛出NoSuchBeanDefinitionException
- 如果该Bean不支持该注解类型则返回null
- */
- @Nullable
- <A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType) throws NoSuchBeanDefinitionException;
由于ApplicationContext实现了这个接口,所以ApplicationContext实现的容器都可以调用这些方法,根据类型获取Bean都是开发中常用的方法
springIOC源码接口分析(五):ListableBeanFactory的更多相关文章
- springIOC源码接口分析(九):Environment
先贴一下接口继承关系图,spring容器启动的时候会初始化环境,所以此接口相关接口非常有必要进行了解: 一 PropertyResolver接口 Environment继承了该接口,PropertyR ...
- springIOC源码接口分析(三):ApplicationContext
一 新增方法 主要都是获取容器基本信息的一些接口,比如获取名称,id和启动时间戳,获取AutowireCapableBeanFactory等接口 二 继承接口 ApplicationContext继承 ...
- springIOC源码接口分析(八):AutowireCapableBeanFactory
参考博文: https://blog.csdn.net/f641385712/article/details/88651128 一 接口规范 从宏观上看,AutowireCapableBeanFact ...
- springIOC源码接口分析(十一):ConfigurableApplicationContext
一 实现接口 关系图: ConfigurableApplicationContext接口实现了三个接口,ApplicationContext, Lifecycle, Closeable, Applic ...
- springIOC源码接口分析(七):ApplicationEventPublisher
一 定义方法 此接口主要是封装事件发布功能的接口,定义了两个方法: /** * 通知应用所有已注册且匹配的监听器此ApplicationEvent */ default void publishEve ...
- springIOC源码接口分析(六):ResourceLoader
参考博客: https://www.cnblogs.com/jixp/articles/10702486.html 一 定义方法 Spring提供了ResourceLoader接口用于实现不同的Res ...
- springIOC源码接口分析(四):MessageSource
一 定义方法 MessageSource接口用于支持信息的国际化和包含参数的信息的替换 这个接口定义了三个方法: public interface MessageSource { /** * 解析co ...
- springIOC源码接口分析(二):ConfigurableBeanFactory
一 继承功能 1 SingletonBeanRegistry接口 此接口是针对Spring中的单例Bean设计的.提供了统一访问单例Bean的功能,类中定义了以下方法: 2 HierarchicalB ...
- springIOC源码接口分析(一):BeanFactory
一 应用场景 BeanFactory接口定义了IOC容器的最基本功能,提供了容器应该具有的功能规范,所有的容器都应该实现这个接口 BeanFactory设计了getBean方法用来获取容器中的Bean ...
随机推荐
- 换根DP(二次扫描)
参考来自这里: https://blog.csdn.net/qq_41286356/article/details/94554729 题目在这里 https://ac.nowcoder.com/acm ...
- 在Linux CentOS下如何安装tar.gz和RPM软件包
1.安装tar.gz软件包: 在Linuxr(Centos下)如何安装tar.gz软件包,该方式实质上就是源代码安装方式,具体如下: 在Linux中使用wget命令下载要安装的文件,命令格式如下:wg ...
- mysql主从之基于gtid的主从复制
一 GITD介绍 1.1 gtid的含义 Global Transaction Identifier,全局事务标识 阿里云的rds目前已经使用gtid 基于gtid的主从复制原理 每个mysql数据库 ...
- ansible批量部署mysql
1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...
- HBase学习笔记(四)—— 架构模型
在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...
- JAVA8学习——Stream底层的实现三(学习过程)
Stream的深入(三) 心得:之前学习流,深入了流的底层.但是学的这些东西在平时日常开发的过程中,是根本不会用到的.只是为了更好帮助自己去理解流的底层设施.用起来也更自信,能够确定用的东西非常正确. ...
- npm install 不更改 package-lock.json 文件的解决方法
package-lock.json 文件是版本锁定文件 package-lock.json 是在 `npm install` 时候生成的一份文件,用以记录当前状态下实际安装的各个 npm packag ...
- Flink系列之Time和WaterMark
当数据进入Flink的时候,数据需要带入相应的时间,根据相应的时间进行处理. 让咱们想象一个场景,有一个队列,分别带着指定的时间,那么处理的时候,需要根据相应的时间进行处理,比如:统计最近五分钟的访问 ...
- 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. 这篇文章介绍的常见面试题是关于重载(overloading)方法和重写( ...
- 揭发233的docker/machine
继手动滑稽之golang-vmware-driver广告篇,今天把vmware-driver完成 然而我却要发一篇牢骚,这是对docker公信力的挑战!!! 本来很简单的升级到vmware 15.x的 ...