我有一个enum
,我需要用spring bean注入它。
我的枚举是:
public enum Status {
IN_PROCESS(1,"In process"),
DONE(0,"Successful"),
CANNOT_DONE(2,"Unsuccessful");
private final int code;
private final String description;
private Status(int code, String description){
this.code = code;
this.description = description;
}
public int getCode() {
return code;
}
public String getDescription() {
return description;
}
}
我的bean.xml
对于enum
..
感谢。
答案 0 :(得分:1)
你不能通过它的构造函数从这个枚举之外创建一个枚举(不是在java而不是在Spring中),因为枚举值是常量!
Enum构造函数只能从Enum declarion itselve中调用。
当然你可以使用这个Enum的一个实例,即使是在Spring中,但你无法创建它:
public Class Entity {
public Entity(Status status) {...}
}
<bean name="entity" class="package.Entity">
<property name="status" value="IN_PROCESS" />
</bean>
答案 1 :(得分:1)
从技术上讲,你可能会尝试将枚举注册为像这样的bean:
@Configuration
class EnumProducer {
@Bean
Status inProgress() {
return Status.IN_PROGRESS;
}
}
然后将其注入:
@Autowired("inProgress") Status status.
但没有任何意义这样做。
答案 2 :(得分:0)
点击此处<util:constant/>
:
http://static.springsource.org/spring/docs/3.0.x/reference/xsd-config.html