0

例如我有

public enum ID { CODEC1, CODEC2 }

和一颗豆子

public class Bean {
   private ID id;
   public ID getId() { return id; }
   public void setId(ID value) { this.id = value; }
}

是否可以在 Spring 配置中以某种方式使用符号名称?例如

<bean id="bean" class="Bean">
   <parameter name="id" value="CODEC1"/>
</bean>
4

2 回答 2

1

如果您使用的是 Spring 3.1,那么您编写的代码应该可以工作。使用以前的版本时,尝试将valueOf枚举定义为工厂方法:

<bean id="CODEC1" class="ID" factory-method="valueOf">
     <constructor-arg>   
         <value>CODEC1</value>
     </constructor-arg>
</bean>

<parameter name="id" value-ref="CODEC1"/>
于 2012-11-26T11:57:59.767 回答
1

试试下面的 SpEL:

<property name="id" value="#{T(my.package.ID).valueOf('CODEC1')}"/>
于 2012-11-26T12:07:47.167 回答