【问题标题】:Setting Values of enum via Spring Integration通过 Spring 集成设置枚举值
【发布时间】:2012-08-16 13:11:11
【问题描述】:
我有一个系统,例如,我有一个商店枚举。这些节目都有自己的 ShopCommand 属性(其中一些共享相同类型的命令类)。从命令类中的一个方法,然后我想在 Spring Integration 网关上调用 send 。我感到困惑的是如何在春天实际实例化这个网关。理想情况下,我想要的是通过 XML 配置构造枚举,其中命令属性也在 Spring 中创建,该属性具有通过 Spring 设置的属性 outGateway。我不确定我是否对这个描述说得很清楚,如果需要澄清,那就问吧!
【问题讨论】:
标签:
java
spring
inversion-of-control
【解决方案1】:
我想这就是你想要的:
假设我有一个 ShopType 的枚举
public enum ShopType {
GROCERY, DEPARTMENT, MALL;
}
然后我有一些我想通过 spring 配置设置的 Store bean。您可以像这样实例化和使用枚举:
<bean id="DEPTARTMENT_STORE" class="my.package.ShopType" factory-method="valueOf">
<constructor-arg value="DEPARTMENT"/>
</bean>
<bean id="searsStore" class="my.package.Store">
<property name="shopType" ref="DEPTARTMENT_STORE"/>
</bean>
工厂方法指向一个用于创建对象的静态方法。所以你可以使用枚举的方法“valueOf”作为工厂方法。