这是我的班级:
public class MyClassA {
private int mode;
public static int THREAD_MODE=1;
public static int CLUSTER_MODE=2;
public MyClassA(int mode) {
this.mode= mode;
}
}
我希望将我的spring配置xml中的这些信息发送到我的类实例。我如何实现这样的目标?
<bean id="myclass" class="com.test.MyClassA"> <constructor-arg value="MyClassA.THREAD_MODE"/> </bean>
答案 0 :(得分:13)
util
命名空间提供了一个constant
元素,它正是这样做的:
<constructor-arg>
<util:constant static-field="MyClassA.THREAD_MODE"/>
</constructor-arg>
此功能的支持由FieldRetrievingFactoryBean
类提供。
这需要在<beans>
元素中添加命名空间和一些架构,即下面提到util
的项目。
<beans xmlns="..."
xmlns:xyz="..."
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="...
...
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
答案 1 :(得分:2)
我可能会使用枚举而不是整数(更多类型安全且范围有限)。 Spring将支持注入枚举。有关详细信息,请参阅this article。