辛星解析Spring3.2源码第三篇:AliasRegistry

时间:2023-01-20 23:31:45

    在Spring中,别名也是一个注册bean的方式,它和传统的通过<bean>或者<beans>来注册bean的概念是等同的,似乎并没有什么不同,那么我们本节就来看一下AliasRegistry这个接口定义。代码如下所示:

/*
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.springframework.core;

/**
* Common interface for managing aliases. Serves as super-interface for
* {@link org.springframework.beans.factory.support.BeanDefinitionRegistry}.
*
* 定义对Alias的简单增删查等操作
*
* @author Juergen Hoeller
* @since 2.5.2
*/
public interface AliasRegistry {

/**
* Given a name, register an alias for it.
*
* 给一个名称注册别名
*
* @param name the canonical name
* @param alias the alias to be registered
* @throws IllegalStateException if the alias is already in use
* and may not be overridden
*/
void registerAlias(String name, String alias);

/**
* Remove the specified alias from this registry.
*
* 移除一个别名
*
* @param alias the alias to remove
* @throws IllegalStateException if no such alias was found
*/
void removeAlias(String alias);

/**
* Determine whether this given name is defines as an alias
* (as opposed to the name of an actually registered component).
*
* 判断一个名称是否是别名
*
* @param beanName the bean name to check
* @return whether the given name is an alias
*/
boolean isAlias(String beanName);

/**
* Return the aliases for the given name, if defined.
*
* 返回一个给定名称的所有别名
*
* @param name the name to check for aliases
* @return the aliases, or an empty array if none
*/
String[] getAliases(String name);

}