如何在Spring配置文件中为bean的属性分配枚举值?

2022-08-31 09:24:59

我定义了一个独立的枚举类型,如下所示:

package my.pkg.types;

public enum MyEnumType {
    TYPE1,
    TYPE2
}

现在,我想将该类型的值注入到bean属性中:

<bean name="someName" class="my.pkg.classes">
   <property name="type" value="my.pkg.types.MyEnumType.TYPE1" />
</bean>

...这并没有:(

我应该如何将枚举注入到春豆中?


答案 1

你试过“TYPE1”吗?我想Spring无论如何都会使用反射来确定“类型”的类型,因此完全限定的名称是多余的。Spring通常不订阅冗余!


答案 2

使用值子元素而不是值属性,并指定 Enum 类名:

<property name="residence">
    <value type="SocialSecurity$Residence">ALIEN</value>
</property>

与仅写入相比,这种方法的优点是,如果Spring无法从属性中推断出枚举的实际类型(例如,属性的声明类型是接口),它也可以工作。改编自araqnid的评论。value="ALIEN"


推荐