gpt4 book ai didi

java - 如何定义一个 xml 配置 spring bean,它是调用枚举实例的结果?

转载 作者:行者123 更新时间:2023-12-02 11:39:09 25 4
gpt4 key购买 nike

我有一个枚举(这是 kotlin,但没关系,也可以是 Java)

enum class AnEnum {
A_VALUE {
override fun aMethod(arg: ArgClass): AClass {
//...
}
};
abstract fun aMethod(arg: ArgClass): AClass
}

我需要 spring xml bean 中的一个 bean,它是调用枚举值的“aMethod”的结果。

看来我不能以通常的方式使用“工厂方法”:

<bean id="myBean" class="my.pckg.AClass" factory-method="???">

我知道如何获取枚举值的 bean,如果这有助于解决问题:

   <bean id="aValueBean" class="my.pckg.AnEnum" factory-method="valueOf">
<constructor-arg>
<value>A_VALUE</value>
</constructor-arg>
</bean>

我不知道如何创建“AClass”类型的 bean,它是在枚举实例上调用带有参数的方法的结果。我对 spring 的经验不是很丰富,之前我曾使用过构造函数或静态方法来定义 bean。

最佳答案

您可以使用util:constant用于为枚举常量声明 bean 的 XML 成员 A_VALUE

<util:constant id="myFactory" static-field="my.pckg.AnEnum.A_VALUE" />

然后使用该 bean 作为 factory-bean为您的 AClass bean

<bean id="myBean" class="my.pckg.AClass" factory-bean="myFactory" factory-method="aMethod">
<constructor-arg>
<bean class="my.pckg.ArgClass"></bean>
</constructor-arg>
</bean>

关于java - 如何定义一个 xml 配置 spring bean,它是调用枚举实例的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709442/

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