Spring Bean名称仅包含详细信息

时间:2014-12-16 10:27:58

标签: spring

我需要使用带有类名的包来创建带有id或name的bean。

例如

<bean class="org.chameleon.commons.context.resolver.impl.UserContextResolver" scope="prototype" 
/>

我希望它像这样

org.chameleon.commons.context.resolver.impl.UserContextResolver

但它向我展示了这一点。

org.chameleon.commons.context.resolver.impl.UserContextResolver@if

如何将bean作为我的必需名称。

1 个答案:

答案 0 :(得分:0)

您应该为bean定义添加“id”或“name”属性,例如

<bean id="org.chameleon.commons.context.resolver.impl.UserContextResolver" class="org.chameleon.commons.context.resolver.impl.UserContextResolver" scope="prototype" />

如Spring参考文档5.3.1命名bean 1

中所述
  

在基于XML的配置元数据中,使用id和/或name属性指定bean标识符。 id属性允许您指定一个id。通常这些名称是字母数字(myBean,fooService等),但也可能包含特殊字符。如果要向bean引入其他别名,还可以在name属性中指定它们,用逗号(,),分号(;)或空格分隔。 作为历史记录,在Spring 3.1之前的版本中,id属性被定义为xsd:ID类型,它约束了可能的字符。从3.1开始,它被定义为xsd:string类型。请注意,bean ID唯一性仍由容器强制执行,但不再由XML解析器强制执行。   您不需要为bean提供名称或ID。如果没有显式提供名称或标识,则容器会为该bean生成唯一的名称。但是,如果要通过名称引用该bean,则必须通过使用ref元素或Service Locator样式查找来提供名称。