2013-03-15 154 views
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 ..

感謝。

+0

我嘗試這一個: <豆ID = 「statusBean」 類= 「entity.Status」> <構造精氨酸值= 「DONE」> 和得到這個錯誤: 不滿意的依賴,通過構造函數的參數表示與類型[INT]指標1:不明確的構造函數參數類型 – tural 2013-03-15 11:46:52

+0

看來你豆構造函數採用一個int變元噸,而不是一個地位。或者說它需要兩個參數而不是一個。修復。並向我們​​展示bean的代碼。 – 2013-03-15 11:48:16

+0

注入enum有什麼意義? – 2013-03-15 12:36:58

回答

1

你不能在Enum之外通過它的構造函數創建Enum(不是在java中,也不在Spring中),因爲Enum值是常量!

Enum構造函數只能從Enum declarion itselve中調用。

當然你也可以使用這個枚舉,即使是在春天的一個實例,但你不能創建它:

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

<bean name="entity" class="package.Entity"> 
    <property name="status" value="IN_PROCESS" /> 
</bean> 
1

從技術上講,你可以嘗試註冊枚舉作爲這樣一個bean:

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

,然後注入其想:

@Autowired("inProgress") Status status. 

沒有任何意義這樣做。