Spring 命名bean

命名bean

        每个bean都有一个或多个标识符,这些标识符在容器托管时必须是唯一的。bean通常只有一个标识符,但如果需要到的标识不止一个时,可以考虑使

用别名。

        在基于XML的配置中,开发者可以使用id属性,name属性或两者都指定bean的标识符。 id属性允许您指定一个id,通常这些名字使用字母和数字的组

合(例如'myBean', 'someService',等等),但也可以包含特殊字符。 如果你想使用bean别名,您可以在name属性上定义,使用逗号(,),分号(;),或白色

空格进行分隔。由于历史因素, 请注意,在Spring 3.1之前的版本中,id属性被定义为xsd:ID类型,它会限制某些字符。从3.1开始,它被定义为xsd:string

类型。请注意,由于bean id的唯一性,他仍然由容器执行,不再由XML解析器执行。

        您也无需提供bean的name或 id,如果没有显式地提供name或 id,容器会给bean生成唯一的名称。 然而,如果你想引用bean的名字,可以使用ref元

素或使用Service Locator(服务定位器)来进行查找(此时必须提供名称)。 不使用名称的情况有: 内部bean和自动装配的协作者

Bean 的命名约定

        bean的命名是按照标准的Java字段名称命名来进行的。也就是说,bean名称开始需要以小写字母开头,后面采用“驼峰式”的方法。 例如

accountManager,accountService, userDao, loginController等。

        一致的beans命名能够让配置更方便阅读和理解,如果你正在使用Spring AOP,当你通过bean名称应用到通知时,这种命名方式会有很大的帮助。

在类路径中进行组件扫描时, Spring 会根据上面的规则为未命名的组件生成 bean 名称,规则是:采用简单的类名,并将其初始字符转化为小写字母。 然

而,在特殊情况下,当有一个以上的字符,同时第一个和第二个字符都是大写时,原来的规则仍然应该保留。这些规则与Java中定义实例的相同。 例如

Spring使用的java.beans.Introspector.decapitalize 类。

为外部定义的bean起别名

        在对bean定义时,除了使用id属性指定唯一的名称外,还可以提供多个别名,这需要通过name属性指定。 所有这个名称都会指向同一个bean,在某

些情况下提供别名非常有用,例如为了让应用每一个组件都能更容易的对公共组件进行引用。

        然而,在定义bean时就指定所有的别名并不是很恰当的。有时期望能够在当前位置为那些在别处定义的bean引入别名。在XML配置文件中, 可以通过元素来定义bean别名,例如:

<alias name="fromName" alias="toName"/>

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值