EJB 3.0 stateless session beans
EJB 3.0 stateful session beans
EJB 3.0 entity beans
JavaBeans
EJB 3.0 message-driven beans
São componentes que não mantém estado por múltiplas invocações, ou seja a cada nova invocação um novo estado é criado. Ele é usado em JSF Action Lsiteners, no entanto não prove propriedades para os componentes de tela do JSF. A vida de um EJB Stateless esta ligada ao Contexto Stateless do Seam
EJB 3.0 Stateful Session Beans
Ao contrário do Stateless este tipo de EJB mantém estado por múltiplas invocações. Com este estado aplicações não armazenam dados temporários em DATA BASES e sim no Stateful Session Beans. Este é umas da principais diferenças entre o Seam e outro frameworks web. As informações armazendas neste estado podem ser acessadas diretamente da sessão web( HttpSession ). O Seam manipula o ciclo de vida deste estado para vc evitando colisões entre diferentes estados em conversações diferentes.
Stateful Session Beans são usados com JSF action listener e com backing beans provendo propriedades para componentes de formulários JSF.
Por padrão Stateful Session Beans são registrado no contexto de conversation e o mesmo nunca pode ser registrado nos contexto Page or Stateless. Todas as requisições para o escopo Stateful Session Bean são serializadas pelo Seam.
EJB 3.0 Entity Beans
São Beans persistentes, objetos que armazenam os dados da aplicação. Este tipo de Bean não suporta bijection ou context demarcation. O Entity Beans não são usados em JSF action listener, no entanto tem grande utilização como provedores de dados as propriedades dos componentes de tela JSF. São muito usados com EJB Stateless Session Beans implementando a famosa funcionalidade CRUD (create, update, delete).
Por padrão os Entity Beans são adicionados no contexto de conversação(conversation) e nunca devemos adiciona-lo no contexto stateless
JavaBeans
Javabeans são usados no Seam como stateless e stateful session bean. No entanto o mesmo não prove as funcionalidades dos Session Beans como: declaração e demarcação de transações, declarações de segurança, eficiente clusterização e replicação, serviço de persistência EJB 3.0, entre outros.
Por padrão os JavaBeans são adicionados no contexto de Evento(event context).
EJB 3.0 Message-driven beans
Message-driven beans podem funcionar como componentes do Seam, no entanto os Message-driven beans são chamados(invocados) completamete diferente dos outros componentes do Seam, ao invés de serem invocados por variáveis de contexto eles ficam escutando mensagens enviadas para uma Fila ou Tópico JMS. Os Message-driven beans não podem ficar limitados a um contexto do Seam. Nem tem acesso ao estado da sessão ou conversação do Bean chamador. Entretanto suportam bijection e outras funcionalidades do Seam.
Bom por hoje é só, no próximo tópico vou falar sobre interceptors, como registrar os componetes no Seam, como definimos escopos para os Beans no Seam entre outras funcionalidades.
Até mais, abraços