gpt4 book ai didi

java - 使用 Spring 从抽象类调用具体方法

转载 作者:行者123 更新时间:2023-12-02 00:53:01 25 4
gpt4 key购买 nike

我现在处境很困难,我无法弄清楚。我正在使用遗留代码,并且我们正在从 PicoContainer 1.1 迁移到 Spring 2.5。我遇到过 Pico 获取抽象类并能够调用具体方法的代码。我怎样才能在 Spring 做到这一点?

这是我迄今为止在 Spring 中尝试过的:

<bean id="module" class="a.b.c.AbstractClass" abstract="true">
<constructor-arg ref="aFactory1" index="0" />
<constructor-arg ref="aFactory2" index="1" />
</bean>

正如预期的那样,当 Spring 注入(inject)此代码时,它不能注入(inject),因为该 bean 是抽象的。

如果可以的话,我会使用 MethodInvokingFactoryBean,但这不起作用,因为参数是从另一个方法调用的,而该方法本身是由另一个 bean 完成的。

在这种情况下我该如何使用Spring?或者我应该尝试下推另一个类中定义的具体方法?

最佳答案

更多细节会有所帮助。

如果您在抽象类上调用方法,则必须有一个具体类某处扩展AbstractClass并实现抽象方法;即使该具体类是由 PicoContainer 在幕后构建的。

简单的事情是:

class ConcreteClass extends AbstractClass {
// implement abstract methods
}

bean 看起来像:

<bean id="concreteModule" parent="module"/>

您可以调用 concreteModule bean 上的方法。

如果你真的很大胆,你可以尝试method injection将抽象方法直接注入(inject)到模块中。请记住删除 abstract="true"。但我不完全确定这是否有效。

关于java - 使用 Spring 从抽象类调用具体方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com