Spring源码解析 - SingletonBeanRegistry 接口

package org.springframework.beans.factory.config;

import org.springframework.lang.Nullable;

/**
 * 1.概述
 *   定义单例bean的接口
 * 2.子接口
 *   ConfigurableBeanFactory:
 * 3.子实现类
 *   ConfigurableBeanFactory:
 *   DefaultSingletonBeanRegistry:
 * 3.包含的方法:
 *    registerSingleton(String, Object):注册单例bean
 *    getSingleton(String):根据名称获取单例bean
 *    getSingletonNames():获取所有单例bean的名称
 *    getSingletonCount():获取单例bean的个数
 *    getSingletonMutex():获取互相引用的单例bean
 *    containSingleton(String):根据bean名称判断该单例bean是否存在
 */
public interface SingletonBeanRegistry {

    /**
     * 根据指定的bean名称和bean实例(应该是完全初始化的,且不接受任何销毁的回调方法)注册单例bean。
     * 注册中心不会执行任何初始化回调(特别是,它不会调用initializegbean的afterPropertiesSet}方法)。
     * @param beanName 自定义的bean的名称
     * @param singletonObject 已存在的单例对象
     */
    void registerSingleton(String beanName, Object singletonObject);

    /**
     * 根据bean名称返回一个bean实例对象(这个实例对象一定是初始化后的,而非一个未初始化的bean实例)
     * 注意:此查找方法不知道FactoryBean前缀或别名。在获取singleton实例之前,需要首先解析规范bean名称。
     * @param beanName 需要查找的bean的名称
     * @return 注册的单例bean实例或者null
     */
    @Nullable
    Object getSingleton(String beanName);

    /**
     * 根据bean的名称判断bean工厂中是否包含bean已经被初始化的实例(未初始化的bean不会被检查)
     * @param beanName 要查找的bean的名称
     * @return true:bean工厂包含此单例bean; false:bean工厂不包含此单例bean
     */
    boolean containsSingleton(String beanName);

    /**
     * 获取注册表中所有已实例化的单例bean的名称。
     * @return 返回名称列表(从不为null)
     */
    String[] getSingletonNames();

    /**
     * 获取注册表中所有注册的单例bean的总数。
     * @return 单例bean的总数
     */
    int getSingletonCount();

    /**
     * 返回此注册表互相引用的单例(对于外部协作者)。@返回互斥对象(never{@code null})
     * @return 互斥的对象(不会为空)
     */
    Object getSingletonMutex();

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值