3

@Createメソッド内にSeamコンポーネントを挿入できないようです。私はこれが不可能であるというヒントをドキュメントで見つけることができません。それは私が間違いを犯しているかどうかを確認するでしょう。

@Create内に注入することは可能ですか?

乾杯!

4

1 に答える 1

5

はい、できます。使用できないのはコンストラクターにあります。

import org.jboss.seam.Component;
import org.jboss.seam.annotations.*;
import org.jboss.seam.log.Log;

@Name("foo")
@AutoCreate
public class Foo {
    @Logger Log log;
    @In Bar bar;

    @Create
    public void init()  {
        log.info("Init: #0", bar);
        log.info("Init: #0", Component.getInstance("bar"));
    }
}




import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;

@Name("bar")
@AutoCreate
public class Bar { }

おっしゃる通り、明らかにSeam のドキュメントには書かれていません。しかし、@Create アノテーションが作成された主な理由は、インジェクションのサポートだと思います。

単純なプロトタイプが必要な場合もあります:)

于 2010-07-30T08:40:35.650 に答える