注意:
Bean metadata and manually supplied singleton instances need to be registered as early as possible, in order for the container to properly reason about them during autowiring and other introspection steps.
Bean元数据和手动提供的单例实例需要尽可能地早添加,为了容器能在自动装配和其它内省步骤中正确地解析它们。
While overriding existing metadata and existing singleton instances is supported to some degree, the registration of new beans at runtime (concurrently with live access to the factory) is not officially supported and may lead to concurrent access exceptions, inconsistent state in the bean container, or both.
虽然重写已存在地元数据和已存在的单例在某种程度上是被支持的,在运行时注册新beans(实时访问工厂)并不被正式地支持,同时会导致并发访问异常,在bean容器中前后状态不一致,或者两个都导致。
1.3.1. Naming Beans
Every bean has one or more identifiers.
每一个bean(可以)有着一个或多个标识符。
These identifiers must be unique within the container that hosts the bean.
在解析bean的容器中,这些标识符必须是独一无二的。
A bean usually has only one identifier.
通常一个bean仅有一个标识符。
However, if it requires more than one, the extra ones can be considered aliases.
然而,如果它需要多于一个(的标识符),额外的那个被称为别名。
In XML-based configuration metadata, you use the id attribute, the name attribute, or both to specify the bean identifiers.
在基于XML配置的元数据,你使用id属性,name属性,或者两个都使用来指定(充当)bean的标识符。
The id attribute lets you specify exactly one id.
id属性让你精确地指定一个id。
Conventionally, these names are alphanumeric ('myBean', 'someService', etc.), but they can contain special characters as well.
通常,它们的名字是字母和数字的组合('myBean','someService',其它),但它们同样也可以包含特殊字符。
If you want to introduce other aliases for the bean, you can also specify them in the name attribute, separated by a comma (,), semicolon (;), or white space.
如果你想要引入为bean引入其它的别名,你也可在name属性种指出它们(别名),通过逗号,分号,或者空格分开。
As a historical note, in versions prior to Spring 3.1, the id attribute was defined as an xsd:ID type, which constrained possible characters.
在Spring3.1版本之前,id属性被定义为Xsd:ID类型,作为一个历史的记号它限制可能的字符【机翻直译】
As of 3.1, it is defined as an xsd:string type.
在3.1版本,它被定义为xsd:string type。(意思是它的格式是如此)
Note that bean id uniqueness is still enforced by the container, though no longer by XML parsers.
尽管不再需要XML解析了,容器仍强制要求将bean的id标记成唯一。
You are not required to supply a name or an id for a bean.
你不是必须地为一个bean提供一个name属性或者id属性。
If you do not supply a name or id explicitly, the container generates a unique name for that bean.
如果你没有显式地提供name属性或者id属性,容器会为bean生成一个独一无二地name
However, if you want to refer to that bean by name, through the use of the ref element or a Service Locator style lookup, you must provide a name.
然而,如果你想通过name属性来引用bean,通过引用元素来使用它或者是服务定位器样式查找它,那么你必须给它提供一个name。
Motivations for not supplying a name are related to using inner beans and autowiring collaborators.
不提供name的动机与使用内部类和自动装配其依赖有关。
Bean Naming Conventions
Bean命名规范
The convention is to use the standard Java convention for instance field names when naming beans.
在命名beans时,该约定对实例字段名使用标准Java约定。
That is, bean names start with a lowercase letter and are camel-cased from there.
也就是说,bean的命名起始于小写并使用驼峰命名法。
Examples of such names include accountManager, accountService, userDao, loginController, and so forth.
这样的命名例子形如accountManager, accountService, userDao, loginController,等等。
Naming beans consistently makes your configuration easier to read and understand.
命名(形式)一致性使你的配置更容易阅读以及理解。
Also, if you use Spring AOP, it helps a lot when applying advice to a set of beans related by name.
同样的,如果你使用SpringAOP,当你将通知应用于一组名字相关联的beans时这对你有很大帮助。