gpt4 book ai didi

java - 用枚举初始化一个bean的属性怎么样?

转载 作者:行者123 更新时间:2023-11-30 08:14:17 26 4
gpt4 key购买 nike

我有一个枚举:

package com.stardust.emul;

public enum BonusTypes{
BIRTHDAY,
REGISTRATION,
ACTIVE
}

和作为 spring 的 bean 的类(全部形成包 com.stardust.utils):

public interface BonusProcessor{

public void processBonus();

}

public class BirthdayBonusProcessor implements BonusProcessor{

//implementation

}

//and so forth

public class VisualService{
Map<BonusTypes, BonusProcessor> processors;
//Other staff
}

问题:如何在 spring 配置文件中指定枚举类型的值?

在我的特殊情况下,我想写这样的东西:

<bean id="birthdayProcessor class="com.stardust.utils.BirthdayBonusProcessor />

<bean id="visualService" class="com.stardust.utils.VisualService">
<property name="processors">
<map>
<entry key ="__BonusTypes.BIRTHDAY__should_be_here" value-ref="birthdayProcessor"/>
</map>
</property>
</beans>

最佳答案

Spring 足够聪明,可以将 String 转换为 enum 类型,前提是该值是 enum 常量的名称。只需指定 map 的键类型即可。

<bean id="visualService" class="com.stardust.utils.VisualService">
<property name="processors">
<map key-type="com.fully.qualified.BonusTypes">
<entry key="BIRTHDAY" value-ref="birthdayProcessor" />
</map>
</property>
</bean>

关于java - 用枚举初始化一个bean的属性怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568927/

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