spring之是否可以在 Spring 中为 bean 类命名别名

落叶无声 阅读:11 2024-11-24 20:56:43 评论:0

我有一个类似于以下示例的字符串属性:

<property name="mappingData"> 
  <list>                 
    <bean class="com.company.product.longNamingStandard.migration.extractor.FieldMapping"> 
      <property name="elementName" value="entitlement.user"/> 
      <property name="mapping" value="DocUsers"/> 
    </bean> 
    <bean class="com.company.product.longNamingStandard.migration.extractor.FieldMapping"> 
      <property name="elementName" value="entitlement.contributor"/> 
      <property name="mapping" value="DocContributors"/> 
    </bean> 
  </list> 
</property>   

长类名会影响可读性并且还会产生重构开销。

是否可以为类名起别名并使用短名称来声明 bean?还是我缺少其他最佳实践?

请您参考如下方法:

对你来说可能有点晚了,但希望对其他人有用:

您可以使用父 bean 来完成此操作。 首先声明一个父bean作为模板:

<bean id="FieldMapping" class="com.company.product.longNamingStandard.migration.extractor.FieldMapping"/> 

然后在别处使用它,使用 parent 属性。

<property name="mappingData"> 
  <list>                 
    <bean parent="FieldMapping"> 
      <property name="elementName" value="entitlement.user"/> 
      <property name="mapping" value="DocUsers"/> 
    </bean> 
    <bean parent="FieldMapping"> 
      <property name="elementName" value="entitlement.contributor"/> 
      <property name="mapping" value="DocContributors"/> 
    </bean> 
  </list> 
</property> 

请注意我这里的惯例是在这里为父模板 bean 使用大写的 id。


标签:Spring
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号