アルテム:
右の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
方法を。