我刚开始学习CDI和Java EE 6,但我发现了这段代码,我想完全理解。
@Stateful
@Model
public class MemberRegistration {
@Inject
private EntityManager em;
@Inject
private Event<Member> memberEventSrc;
private Member newMember;
@Produces
@Named
public Member getNewMember() {
return newMember;
}
}
接着……我看到一个JSF页面像这样引用了newMember
对象:
<h:inputText value=#{newMember.name}/>
所以我的问题是:如果我在任何对象的变量中放置一个
@Named
注释,它仍然可以从JSF代码中访问吗?
此外,在这种情况下,@Produces
的用途是什么?最后,在Java EE 6中,@Stateful
是否优先于@Stateless
?如果是这样,为什么?