Oui, vous pouvez. C'est dans le constructeur que vous ne pouvez pas l'utiliser.
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 { }
Et vous avez raison, apparemment dans le seam documentation ce n'est pas écrit. Mais je pense que la prise en charge de l'injection est la principale raison pour laquelle les annotations @Create ont été créées.
Parfois, un simple prototype est ce que vous avez besoin :)
Une autre mise en garde sans papier: ** Assurez-vous que la méthode annotée avec '@ create' est * pas *' final' ** Ce mot-clé peut conduire à des incohérences si. vous avez des propriétés «privées» et d'autres choses. Evitez tout simplement. – acdcjunior