2

私は持っています、enum そして私はそれを春の豆で注入する必要があります。

私の列挙型は:

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..

ありがとう。

4

3 に答える 3

1

Enum 値は定数であるため、この Enum の外部 (java や Spring ではなく) からコンストラクターを介して Enum を作成することはできません!

Enum コンストラクターは、Enum 宣言自体からのみ呼び出すことができます。

もちろん、Spring でもこの Enum のインスタンスを使用できますが、作成することはできません。

public Class Entity {    
    public Entity(Status status) {...}
}

<bean name="entity" class="package.Entity">
   <property name="status" value="IN_PROCESS" />
</bean>
于 2013-03-15T12:32:23.933 に答える
1

技術的には、次のように列挙型を Bean として登録しようとする場合があります。

@Configuration
class EnumProducer {
   @Bean
   Status inProgress() {
        return Status.IN_PROGRESS;
   }
}

そしてそれを次のように注入します:

@Autowired("inProgress") Status status.

しかし、それを行う意味はありません

于 2013-03-15T13:23:53.057 に答える
0

<util:constant/>ここをチェックしてください:
http ://static.springsource.org/spring/docs/3.0.x/reference/xsd-config.html

于 2013-03-15T13:27:19.830 に答える