春BeanDefinitionRegistryソースの解析

BeanDefinitionRegistryソース決意

継承

継承インタフェース

AliasRegistry主に使用される別名をするために含まれ、登録されたbeanName別名かどうか、およびアクセスを決定するために、エイリアスを削除し、別名を登録beanNameエイリアス対応します

/**
 * 用于管理别名的通用接口。 
 * 用作{@link  org.springframework.beans.factory.support.BeanDefinitionRegistry}的超级接口。 
 *  @author 于尔根·霍勒(Juergen Hoeller)@2.5.2起
 */
public interface AliasRegistry {

   /**
    * 给定名称,为其注册一个别名。 
    * @param name the canonical name(简洁的名字)
    * @param 别名 要注册的别名
    * @throws  IllegalStateException如果别名已在使用中并且可能不会被覆盖
    */
   void registerAlias(String name, String alias);

   /**
    * 从此注册表中删除指定的别名。 
    *  
    * @param alias 将要删除的别名
    * @throws  IllegalStateException 找不到别名
    */
   void removeAlias(String alias);

   /**
    * 确定给定名称是否被定义为别名(与实际注册的组件的名称相反)。 
    *  
    * @param name 要检查的名称
    * @return 给定名称是否为别名
    */
   boolean isAlias(String name);

   /**
    * 返回给定名称的别名(如果已定义)。 
    *  
    * @param name 要检查别名的bean的名称
    * @return 别名,如果没有则为空数组
    */
   String[] getAliases(String name);

}

このクラスのパース

BeanDefinitionRegistryよるbeanName登録BeanDefintionを含む、beanName対応するBeanDefinition登録、取得、削除beanName対応するレジスタを、判断されるbeanNameと判断され、登録されたか否かalias、及びbeanName既に取得するために使用されているBeanDefinitionすべての登録への登録の数、アクセスしますbeanName

/**
 * 包含BeanDefinition的注册表的接口,例如RootBeanDefinition和ChildBeanDefinition实例。 
 * 通常由内部使用AbstractBeanDefinition层次结构的BeanFactories实现。 
 *  <p>这是Spring的bean工厂包中唯一封装<i>注册</ i> bean定义的接口。 
 * 标准BeanFactory接口仅涵盖对<i>完全配置的工厂实例</ i>的访问。 
 *  <p> Spring的Bean定义读者希望可以使用此接口的实现。 
 *  Spring核心中的已知实现者是DefaultListableBeanFactory和GenericApplicationContext。 
 *  @author  Juergen Hoeller @2003年11月26日起
 * @see  org.springframework.beans.factory.config.BeanDefinition 
 * @see  AbstractBeanDefinition 
 * @see  RootBeanDefinition 
 * @see  ChildBeanDefinition 
 * @see  DefaultListableBeanFactory 
 * @see  org.springframework.context.support.GenericApplicationContext 
 * @see  org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
 * @see  PropertiesBeanDefinitionReader
 */
public interface BeanDefinitionRegistry extends AliasRegistry {

   /**
    * 在此注册表中注册新的BeanDefinition。
    * 必须支持RootBeanDefinition和ChildBeanDefinition。 
    *  
    * @param  beanName 要注册的bean实例的名称
    * @param beanDefinition 要注册的bean实例的BeanDefinition
    * @throws  BeanDefinitionStoreException 如果BeanDefinition无效
    * @throws  BeanDefinitionOverrideException 如果指定的bean已经有BeanDefinition名称,并且不
    */
   void registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
         throws BeanDefinitionStoreException;

   /**
    * 删除给定名称的BeanDefinition。 
    *  
    * @param  beanName 已注册的bean实例的名称
    * @throws  NoSuchBeanDefinitionException 如果没有这样的bean定义
    */
   void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;

   /**
    * 返回给定bean名称的BeanDefinition。 
    *  
    * @param  beanName Bean的名称,以查找给定名称的BeanDefinition 
    * @return beanName对应的BeanDefinition(不返回{@code null})
    * @throws  NoSuchBeanDefinitionException 如果没有这样的bean定义
    */
   BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;

   /**
    * 检查此注册表是否包含具有给定名称的BeanDefinition。
    *  
    * @param  beanName 要查找的bean的名字
    * @return 是否这个注册中心包含给定的beanName对应的BeanDefinition
    * 
    */
   boolean containsBeanDefinition(String beanName);

   /**
    * 返回此注册表中定义的所有bean的名称。 
    *  
    * @return 此注册表中定义的所有bean的名称; 
    * 如果未定义,则为空数组
    */
   String[] getBeanDefinitionNames();

   /**
    * 返回注册表中定义的bean数。 
    *  
    * @return 注册表中定义的bean数
    */
   int getBeanDefinitionCount();

   /**
    * 确定给定的beanName是否已在此注册表中使用,换言之是否在此名称下注册了使用beanName或对应alias的本地bean。
    *  
    * @param  beanName 要检查的名称
    * @return 给定的bean名称是否已被使用
    */
   boolean isBeanNameInUse(String beanName);

}

概要

すべての責任を負うの第一beanNameおよびBeanDefinitionリレーショナルマッピング(登録)、達成しながら、AliasRegistryインターフェースを、意志beanNamealiasの間のリンクを確立します。

おすすめ

転載: www.cnblogs.com/akfak/p/12378464.html