我定义了一个独立的枚举类型,如下所示:
package my.pkg.types;
public enum MyEnumType {
TYPE1,
TYPE2
}
Run Code Online (Sandbox Code Playgroud)
现在,我想将该类型的值注入bean属性:
<bean name="someName" class="my.pkg.classes">
<property name="type" value="my.pkg.types.MyEnumType.TYPE1" />
</bean>
Run Code Online (Sandbox Code Playgroud)
......那不起作用:(
我应该如何将一个枚举注入一个春豆?
小智 38
使用value子元素而不是value属性并指定Enum类名:
<property name="residence">
<value type="SocialSecurity$Residence">ALIEN</value>
</property>
Run Code Online (Sandbox Code Playgroud)
这种方法优于写作的优点value="ALIEN"是,如果Spring无法从属性中推断枚举的实际类型(例如,属性的声明类型是接口),它也可以工作.改编自araqnid的评论.
Luc*_*cas 31
我知道这是一个非常古老的问题,但是如果有人正在寻找更新的方法来执行此操作,请使用spring util命名空间:
<util:constant static-field="my.pkg.types.MyEnumType.TYPE1" />
Run Code Online (Sandbox Code Playgroud)
如弹簧文档中所述.
小智 6
这就是为我做的 MessageDeliveryMode 是 bean 的枚举,其值为 PERSISTENT:
<bean class="org.springframework.amqp.core.MessageDeliveryMode" factory-method="valueOf">
<constructor-arg value="PERSISTENT" />
</bean>
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 SPEL 和 P-NAMESPACE:
<beans...
xmlns:p="http://www.springframework.org/schema/p" ...>
..
<bean name="someName" class="my.pkg.classes"
p:type="#{T(my.pkg.types.MyEnumType).TYPE1}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122152 次 |
| 最近记录: |