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

标签 spring syntax

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

<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 - 是否可以在 Spring 中为 bean 类命名别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963790/

相关文章:

spring - 使用保管库保护 Spring Cloud 配置凭据

ruby - 如何使 Ruby 的 N 端看起来更好?

syntax - 如何使用 if then else 在 Crystal 报表公式中构建字符串

objective-c - Objective-C "#if"语法

sql-server-2005 - 关键字 'AS' 附近的语法不正确

c++ - Qt 槽和信号语法

java - 为什么我添加图标后它就损坏了?

java - spring 下载文件 Controller 中重定向的错误处理

spring jndi数据源设置

java - Liquibase 是否在 Spring Boot 应用程序中注册所有 bean 之前运行?