2016-12-07 100 views
0

我在某些類中使用了@PropertyInject。 這些類通過藍圖注入(使用Maven藍圖插件)。我想檢查注入到@PropertyInject字段的值。注入「@PropertyInject」字段時,要檢查注入值

問題是,在PostConstruct(由maven-blueprint-plugin-> init方法支持)內,所有字段仍爲空。 但是,如果我使用注入這些文件的對象(駱駝端點),所有字段都設置正確。

所以在「PostConstruct」和實例的用法之間,所有的字段都被注入。有沒有一種方法可以在注入後直接檢查值(!= null)?

+0

基本上你想確保你不注入某些東西而不是空的或空的?我不確定你可以通過藍圖中設置的屬性來完成此操作。我想你需要自己檢查一下,如果屬性應該有一個值,就會拋出一個異常。 –

+0

我想檢查它!但當?我想檢查注入這些字段的對象。這個對象然後被注入到另一個對象中。 – dermoritz

+0

難道你不可以在做任何事情之前使用一些防禦性編程來檢查字段是否爲空? –

回答

2

將@PropertyInject放在setter上,並檢查setter中設置的值。

@PropertyInject("prop") 
public void setProp(String value) { 
    if (value == null) { 
    throw new IllegalArgumentException("prop cannot be null"); 
    } 
    this.prop = value; 
}