![](/img/trans.png)
[英]How to assign bean's property an Enum value in Spring config file?
[英]How about initializition a bean's property with enum?
我有一个枚举:
package com.stardust.emul;
public enum BonusTypes{
BIRTHDAY,
REGISTRATION,
ACTIVE
}
和类作为弹簧的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
}
问题 :如何在春季配置文件中指定枚举类型的值?
在我的特殊情况下,我想写这样的东西:
<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>
如果该值是enum
常量的名称,Spring足够聪明地将String
转换为enum
类型。 只需指定地图的键类型即可。
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.