2016-12-07 8 views
0

私はいくつかのクラスで@PropertyInjectを使用しています。 これらのクラスは青写真(maven blueprint pluginを使用)を介して注入されます。私は@PropertyInjectでフィールドに注入された値をチェックしたいと思います。"@PropertyInject"フィールドが注入された場合、注入された値をチェックしたい

問題は、PostConstruct(maven-blueprint-plugin-> initメソッドでサポートされています)内のすべてのフィールドはまだnullです。 しかし、それらのフィールドを注入するオブジェクト(ラクダエンドポイント)を使用すると、すべてのフィールドが正しく設定されます。

したがって、 "PostConstruct"とインスタンスの使用の間に、すべてのフィールドが注入されます。値をチェックするために注射の直後にフックできる方法はありますか(!= null)?

+0

基本的には、空でもなくヌルでもなく注入しないようにしたいですか?私はあなたが青写真に設定されたプロパティでそれを行うことができるとは確信していません。プロパティを値にする必要がある場合は、自分でこれをチェックして例外をスローする必要があると思います。 –

+0

私はそれをチェックしたい!でもいつ?私はそれらのフィールドを注入するオブジェクトをチェックインします。このオブジェクトは、別のオブジェクトに注入されます。 – dermoritz

+0

何かをする前にフィールドが空であるかどうかを確認するために防御プログラミングを使うことはできませんか? –

答えて

2

Setterに@PropertyInjectを設定し、設定者に設定されている値を確認します。

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