Novidades no EJB 3.1

A especificação Enterprise JavaBeans está ficando absolutamente incrível, muitas evoluções desde sua primeira versão e mais novidades ainda depois da versão 3.0, onde o EJB realmente se consagrou no mercado. O grande avanço de cada versão mostra a forte preocupação com a simplicidade de seu uso, fazendo com que com poucas linhas de código ou até mesmo uma simples anotação sejam substituídos por implementações mais complexas. As novidades são:

  1. Interfaces Local são opcionais, ou seja, não precisa mais da implementação por interface e da anotação @Local.

  1. Empacotamento e distribuição em um arquivo war, sem a necessidade de um ejb-jar.
  2. Uma API embarcada para executar componentes EJB dentro de um ambiente Java SE.
  3. Um Singleton Session Bean que fornece fácil acesso ao compartilhamento de estados, bem como inicialização/finalização de callbacks

 Baseado no padrão de projeto Singleton, ou seja, existindo apenas uma instância durante toda aplicação.

  1. Criação de EJB Timers automaticamente e Expressões baseado em calendário.

Exemplo: Diz bom dia em todas as sexta-feiras, as 8:10 da manhã.

  1. Invocação de Session Beans assíncrona.

Exemplo:

Pode ser usado a API de Java concurrent como neste segundo exemplo que retorna um java.util.concurrent.Future que fornece métodos para verificar se o resultado já chegou.

  1. JNDI Global para componentes EJB.

         Antigamente, dependendo do servidor de aplicação, era necessário configurar as chamadas de uma forma diferente. Por exemplo:

Glassfish: pelo nome completo da interfaces remota EJB.

      Object obj = initialContext.lookup(“com.matera.services.EmpresaService”);

Jboss: nome do EAR, seguido pelo nome do EJB e constantes /local ou /remote

      Object obj = initialContext.lookup(“ejb-matera-ear/empresaService/local”);

Agora é possível ter uma configuração apenas para diferentes servidores de aplicação:

java:global[/nome-aplicação]/<nome-modulo>/<nome-bean>#<nome-interface>

Referências:

Oracle: http://download.oracle.com/otn-pub/jcp/ejb-3.1-mrel-evalu-oth-JSpec/ejb-3_1-mrel-spec.pdf?AuthParam=1357651541_821a4fdc21a3eee06f1018b0b8b75423

Blog Oracle: https://blogs.oracle.com/arungupta/entry/totd_146_understanding_the_ejb

Docs Oracle: http://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html

Dzone: http://java.dzone.com/articles/ejb-31-%E2%80%93-ejb-new-and-improved-

Por IGOR KENGI SHIOHARA

Postado em: 08 de janeiro de 2013

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário