注釈@PostConstruct(のjavax)とのメソッドは呼び出しません。

アルテム:

右のjavaxから注釈を使用してコンストラクタを呼び出した後、特定の初期化メソッドを呼び出すことが可能ですか?

私は入れて@Inject注釈を(javax.inject.Inject)私が持つメソッドで初期化することをフィールドの上に@PostConstruct注釈(javax.annotation.PostConstruct)コンストラクタが呼び出された直後に、このinitメソッドが呼び出されないとNPEがクラッシュします。

public class ClassChild extends ClassParent{

   @Inject
   private SomeService someService;


   @PostConstruct
   public void init(){

      someService = new SomeService(getSomeValues())  // getSomeValues() a method from parent
   }

私が正しくこれらのアノテーションを使用していますか?何が問題ですか?どのようにClassChildコンストラクタを呼び出した後のinit()メソッドの権利を呼び出すには?私は任意の助けのために非常に感謝されます!

富:

あなたは、ClassChild管理対象オブジェクト(例えば、Aではない@Component春中)、そのどちら@Inject@PostConstruct動作します。あなたはコンストラクタを呼び出すことになっていない、あなたは、フレームワークの初期化を持っている必要がありますClassChildフレームワークも呼ぶその後、@PostConstruct方法を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=316022&siteId=1