【发布时间】:2022-07-19 07:30:13
【问题描述】:
我在无法更改或控制的代码上声明了一个 spring bean,它是这样声明的:
<alias name="defaultRemoveSheetsDecorator" alias="removeSheetsDecorator"/>
<bean id="defaultRemoveSheetsDecorator"
class="com.hybris.backoffice.excel.exporting.RemoveSheetsDecorator">
<property name="sheetsToRemove">
<list>
<value type="com.hybris.backoffice.excel.template.ExcelTemplateConstants$UtilitySheet">
PK
</value>
</list>
</property>
</bean>
我试图像这样覆盖它:
<alias name="myRemoveSheetsDecorator" alias="removeSheetsDecorator" />
<bean id="myRemoveSheetsDecorator"
class="com.mypackage.MyRemoveSheetDecorator" parent="defaultRemoveSheetsDecorator">
<property name="sheetsToRemove">
<list>
<value type="com.hybris.backoffice.excel.template.ExcelTemplateConstants$UtilitySheet">
PK
</value>
</list>
</property>
</bean>
但由于某种原因,当我得到 bean removeSheetsDecorator 并使用 getClass() 检查它的类时,它仍然指向原始 bean ??
【问题讨论】:
-
你能澄清你想要做什么吗?我首先阅读的方式是,您有一个具有指定名称的 bean,但您希望能够使用别名引用该 bean(可能用于自动装配限定符)。根据您的最终声明,您似乎想要一个 bean 的副本(使用新名称)。
-
有一个 bean 定义了 OOTB
removeSheetsDecorator并在多个地方使用,我正在尝试用我的自定义 bean 扩展/覆盖
标签: java spring sap-commerce-cloud