Recordando Beans de sessão sem estado em Enterprise JavaBeans

beans de sessão sem estado

- EJBs que completam uma tarefa em uma única etapa - são, indiscutivelmente, o mais simples de todos os componentes EJB. Eles fazem exigências mínimas no desenvolvedor de componentes EJB e são utilizados para implementar operações muito simples. No entanto, você tem várias regras importantes sobre beans de sessão sem estado que, como um desenvolvedor de EJB, você deve se lembrar.

beans de sessão sem estado pode ser complicado devido à forma como as interfaces EJBHome e EJBObject são definidos. Todos os tipos de componentes EJB implementar estas duas interfaces, que deve ser genérico o suficiente para suportar os métodos necessários por feijões Stateless Session, feijão sessão com estado e beans de entidade. Porque beans de sessão sem estado são tão simples, eles não precisam de todos os métodos que as interfaces EJBHome e EJBObject definem. Consequentemente, alguns dos métodos no bean de sessão sem estado sempre lançar exceções se eles estão invocado.

Dê uma nota - ao definir suas próprias classes, é uma boa idéia para definir interfaces de forma que eles se escondem métodos que são irrelevantes para uma implementação particular. Você fazer isso simplesmente definindo a interface mais estreito primeiro, e depois estendendo-o para adicionar métodos adicionais para uma interface mais ampla, e assim por diante até que você tenha todos os métodos necessários definido. Se o fizer, elimina a confusão que resulta de ter métodos implementados em uma classe que não precisa deles e não pode usá-los.

ciclo de vida do bean de sessão sem estado

beans de sessão sem estado são componentes EJB projetado com dois objetivos simples na mente:

  • Para executar tarefas simples que podem ser realizadas em uma única chamada de método.
  • Para ser partilhado por muitos clientes ao mesmo tempo. Esta é a causa raiz para o session bean sendo apátrida.

O termo apátrida refere-se ao fato de que o bean de sessão sem estado não pode segurar qualquer informação para um cliente EJB entre invocações método para esse cliente. A razão beans de sessão sem estado são apátridas é porque os grãos são mantidos em uma piscina comum no container EJB entre cada invocação de método no bean, um processo mostrado na Figura 1.


Figura 1: Ciclo de vida do bean de sessão sem estado.

Quando um cliente chama um método em um bean de sessão sem estado, ele é removido da piscina, o método é executado, eo feijão é imediatamente devolvido à piscina. Conseqüentemente, se você executou dois métodos simultâneas em uma variável bean de sessão sem estado, diferentes feijão no container EJB provavelmente atendê-los.

casos ideais para o uso de beans de sessão sem estado são para tarefas simples, como o processamento de um pagamento, fazer um depósito, ou fazer uma retirada. Estas tarefas todos têm duas características comuns: Elas representam acções, e eles podem ser realizadas num único passo.

Enquanto beans de sessão sem estado oferecer um grande benefício de desempenho, eles não são a escolha certa para todas as tarefas. Se você precisa de seu bean de sessão para lembrar de informações fornecidas por um cliente através de múltiplas chamadas de método, então você deve usar beans de sessão com estado.

Quando usar beans de sessão sem estado

Dada a abundância de opções de componentes EJB disponíveis para você, às vezes pode ser difícil decidir se o bean de sessão sem estado é a ferramenta certa para a sua tarefa. Um par de orientações simples pode ajudá-lo a tomar essa decisão.

  • Primeiro, considere se a tarefa a sua aplicação precisa executar pode ser realizado em uma invocação de-único método. Lembre-se que um bean de sessão sem estado não consegue se lembrar de estado específica de um cliente entre chamadas de método. Assim, se a tarefa em questão envolve mais do que uma única etapa, o bean de sessão sem estado não é a escolha certa. Mas se você pode executar a tarefa em uma única etapa, em seguida, use sempre o bean de sessão sem estado.
  • Em segundo lugar, determinar se o processo de sua aplicação está realizando tem de ser visível a vários clientes ao mesmo tempo. Se o aplicativo precisa para compartilhar informações e estado entre vários clientes, então você tem apenas uma escolha - um bean de entidade.

Lembre-se que um bean de sessão sem fornece benefícios de desempenho consideráveis ​​para a sua aplicação. Geralmente, se você pode projetar o aplicativo para maximizar o uso de beans de sessão sem estado, o servidor de aplicativos será capaz de responder a chamadas de clientes mais rapidamente.

menu