Spring BeanDefinitionRegistry source parsing

BeanDefinitionRegistrySource resolve

Inheritance

Inherited Interface

AliasRegistryMainly used aliases registered, included to beanNameregister an alias, delete the alias, to determine whether an alias, and access to beanNamethe alias corresponding

/**
 * 用于管理别名的通用接口。 
 * 用作{@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);

}

This class parses

BeanDefinitionRegistryAccording to beanNameregistration BeanDefintion, including the beanNamecorresponding BeanDefinitionregistration, acquisition, Remove beanNamethe corresponding register, it is judged beanNamewhether or not registered, it is judged alias, and beanNamehas already been used to obtain BeanDefinitionthe number of registration, access to all registered 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);

}

to sum up

First of all responsible beanNameand BeanDefinitionrelational mapping (registration), while achieving AliasRegistryinterfaces, will beanNameand aliasestablish a link between.

Guess you like

Origin www.cnblogs.com/akfak/p/12378464.html
Recommended