多语言展示
当前在线:1782今日阅读:58今日分享:42

spring bean 命名

spring bean 命名
工具/原料
1

spring

2

IntelliJ idea

方法/步骤
1

每个bean都有一个或多个标识符。这些标识符在托管bean的容器中必须是唯一的。bean通常只有一个标识符。但是,如果它需要多个,则额外的可以被视为别名。

2

在基于XML的配置元数据中,您可以使用 id 属性, name 属性或两者来指定bean标识符。该 id 属性允许您指定一个id。通常,这些名称是字母数字('myBean','someService'等),但它们也可以包含特殊字符。

3

如果要为bean引入其他别名,还可以在 name 属性中指定它们,用逗号( , ),分号( ; )或空格分隔。作为历史记录,在Spring 3.1之前的版本中,该 id 属性被定义为一种 xsd:ID类型,它约束了可能的字符。

4

从3.1开始,它被定义为一种 xsd:string 类型。请注意, id 容器仍然强制实施bean 唯一性,但不再是XML解析器。

5

您不需要提供bean name 或 id bean。如果您不提供 name 或 id 显式提供,则容器会为该bean生成唯一的名称。但是,如果要按名称引用该bean,则通过使用 ref 元素或 Service Locator样式查找,必须提供名称。不提供名称的动机与使用内部bean和自动装配协作者有关。

6

通过类路径中的组件扫描,Spring按照前面描述的规则为未命名的组件生成bean名称:实质上,采用简单的类名并将其初始字符转换为小写。但是,在(不常见的)特殊情况下,当有多个字符且第一个和第二个字符都是大写字母时,原始外壳将被保留。这些规则与 java.beans.Introspector.decapitalize (Spring在此处使用)定义的规则相同。

7

在bean定义本身中,您可以为bean提供多个名称,方法是使用 id 属性指定的最多一个名称和属性中的任意数量的其他名称 name 。这些名称可以是同一个bean的等效别名,对某些情况很有用,例如让应用程序中的每个组件通过使用特定于该组件本身的bean名称来引用公共依赖项。

8

但是,指定实际定义bean的所有别名并不总是足够的。有时需要为其他地方定义的bean引入别名。在大型系统中通常就是这种情况,其中配置在每个子系统之间分配,每个子系统具有其自己的一组对象定义。在基于XML的配置元数据中,您可以使用该 元素来完成此任务。以下示例显示了如何执行此操作:

推荐信息