public interface SingletonBeanRegistry {
//在给定的bean名称下,在bean注册表中将给定的现有对象注册为单例。
//给定的实例应该被完全初始化; 注册表将不执行任何初始化回调
//(特别是,它不会调用InitializingBean的afterPropertiesSet方法)
//给定的实例也不会接收任何销毁回调(如DisposableBean的destroy方法)
//在完整的BeanFactory中运行时:如果您的bean应该接收初始化和/或销毁回调,
//请注册一个bean定义而不是现有实例。初始化或销毁回调通常在注册表配置期间调用,
//但也可以用于单例的运行时注册。 因此,注册表实现应同步单例访问。
//如果它支持BeanFactory的单例延迟初始化,则无论如何都必须这样做。
void registerSingleton(String beanName, Object singletonObject);
//返回以给定名称注册的(原始)单例对象。
//仅检查已经实例化的单例; 对于尚未实例化的单例bean定义,不返回对象。
//此方法的主要目的是访问手动注册的单例(请参见registerSingleton)。
//也可以用于以原始方式访问由已创建的bean定义定义的单例。
//注意:此查找方法不知道FactoryBean前缀或别名。
//在获取单例实例之前,您需要首先解析规范的bean名称。
Object getSingleton(String beanName);
//检查此注册表是否包含具有给定名称的单例实例。仅检查已实例化的单例;
//对于尚未实例化的单例bean定义,不会返回true。
//此方法的主要目的是检查手动注册的单例(请参见registerSingleton)
//也可以用于检查是否已创建由bean定义定义的单例。
//使用BeanFactory的containsBean进行常规检查可以检查工厂
//是否知道具有给定名称的bean(无论是手动注册的单例实例还是由bean定义创建的)
//还可以检查祖先工厂。
//注意:此查找方法不知道FactoryBean前缀或别名。
//在检查单例状态之前,您需要首先解析规范的bean名称。
boolean containsSingleton(String beanName);
//返回在此注册表中注册的单例bean的名称。
//仅检查已经实例化的单例; 不返回尚未实例化的单例bean定义的名称。
//此方法的主要目的是检查手动注册的单例(请参见registerSingleton)
//也可以用来检查由bean定义定义的单例已经创建。
String[] getSingletonNames();
//返回在此注册表中注册的单例bean的数量。
//仅检查已经实例化的单例; 不计算尚未实例化的单个bean定义。
//此方法的主要目的是检查手动注册的单例(请参见registerSingleton)
//也可以用来计算已经由bean定义定义的单例的数量。
int getSingletonCount();
//返回此注册表使用的单例互斥体(对于外部协作者)。
Object getSingletonMutex();
}
SingletonBeanRegistry
最新推荐文章于 2022-10-24 23:16:58 发布