Я только начинаю изучать 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
, и, наконец, @Stateful
предпочтительнее @Stateless
в Java EE 6? Если это так, то почему?