Java EE ou java Enterprise Edition

Java EE ou java Enterprise Edition é uma plataforma de desenvolvimento voltado para servidores para a linguagem java que contém um conjunto de tecnologias coordenadas que reduz significativamente o custo e a complexidade do desenvolvimento, implantação e gerenciamento de aplicativos de várias camadas centrados no servidor.

Ficou muito conhecido para o desenvolvimento de aplicações para corporações. Dentre seus diferenciais podemos destacar aplicações distribuídas, seguras, escaláveis, de alta disponibilidade e com baixo custo de manutenção.

Trazendo grande expectativa no dia 10 de dezembro de 2009 foi lançada a nova versão enterprise do java o JSR 316 (JEE 6). Dentre as novas tecnologias que atende as novas necessidades ele veio quebrando a ideia que o Java EE servia apenas para aplicações grandes e robustas se adaptando a aplicações de diferentes tamanhos.

Uma das grandes características dessa nova versão é o uso constante das anotações com o intuito de eliminar bastantes os arquivos xml para se dar mais produtividade e também facilidades ao desenvolvedor. A evolução do Java EE é notável veio com 10 especificações atualizadas e cinco novas no total de 28.

Atualização do Java Enterprise Edition
Figura 1. Atualização do Java Enterprise Edition

Apesar de existir 28 especificações existe o recurso, profile, que você pode configurar os recursos que será utilizado em sua aplicação e deixando a mesma mais leve. Nosso artigo aqui visa demonstrar apenas algumas das facilidades encontradas no JEE.

JSFO

Java Server Faces que é a principal ferramenta para desenvolvimento na web que ficou conhecida por ser muito trabalhosa e também não ter suporte a AJAX características que foram quebradas com a versão 2.0 do jsf. Um dos grandes impactos que temos é o Facelts como nativo substituindo o jsp dentre suas vantagens podemos destacar: Requer menos poder computacional e por consequência leva menos tempo para compilar. O aproveitamento de código com o uso de templates além de você poder criar componentes.

listagem 1Listagem 2
Figura 1. Linhas de Códigos

Esse recurso economiza e muito durante a manutenção e implantação de por exemplo do menu que ficará em todas as páginas. Outra coisa muito interessante é a não existência, caráter opcional, do faces-config.xml que antes servia para adicionar os javaBeans além de também você fazer a navegação entre as páginas. Agora simplesmente colocamos as anotações para declarar seus manager bean.oi. Um outro aspecto que tirou de vez o faces-config.xml da jogada foi a navegação implícita o que antes dava muito trabalho se tornou implícito, por exemplo se em um commandLink a ação for uma “página” e ela não tiver nenhuma regra de validação o JSF automaticamente procurará uma página pagina.xhtml sem a necessidade de configuração como na versão anterior.

Listagem 3Listagem 4
Figura 2. Linhas de Códigos

Acredito eu que a novidade mais esperada no JSF 2.0 foi o suporte ao AJAX, nas versões anteriores esse recursos era possível com outros frameworks ou bibliotecas como o IceFace, RichFaces dentre outras.

Listagem 5
Figura 3. Linhas de Códigos

Servlet 3.0

Nas versões anteriores era necessário para se criar uma servlet uma classe que se estende de HttpServlet além de configurá-lo corretamente no web.xml. Agora com o uso de anotações você centraliza operações em apenas um objeto e dependendo da requisição feita pode-se tratar de maneira mais adequada.

Listagem 6
Figura 4. Linhas de Códigos

Outra funcionalidade interessante é que agora não é mais necessário configurar nada para se utilizar frameworks, plugins e servlets de terceiros basta inserir o .jar no seu classpath. O destaque do servlet 3.0 foi o tão esperado suporte nativo às chamadas assíncronas muito utilizado nas aplicações web atuais, vale lembrar o significado da sigla AJAX - Asynchronous Javascript And XML.

JPA 2.0

O java persistence api trouxe uma grande evolução a plataforma java em relação a persistência de dados, com ele você não precisa ficar preso a somente um framework de persistência. Agora muito mais maduro na sua versão 2.0 incorporando muitos recursos antes existentes apenas em outros frameworks.A grande novidade do jpa é o uso do Criteria já existente no Hibernate com esse API podemos criar queries dinâmicas, padronizadas e fazer validação. No exemplo abaixo fazemos uma lista de todos os objetos do tipo Pessoa que tenham 20 anos

Listagem 7
Figura 5. Linhas de Códigos

EJB 3.1

O uso do enterprise java beans simplificou bastante o desenvolvimento. O uso de anotações xmlopcional e POJOs/POJIs são as características marcantes na versão 3.0. Agora na nova versão podemos criar interfaces opcionais ou seja você só cria se realmente precisar dela. Na figura abaixo mostra um session local sem a necessidade da interface e da anotação @Local

Listagem 8
Figura 6. Linhas de Códigos

Na versão anterior, EJB só poderia existir em deployments no formato EAR. Agora você pode empacotar seus EJBs com sua aplicação WAR o suporte serviços assíncronos é outra novidade para isso basta apenas colocar a anotação @Asynchronous. Outra novidade é a ideia de criar session beans que só existem uma única vez na sua aplicação. Assim é possível criar objetos como o ServletContextna aplicação web colocando apenas a anotação @Singleton.

CDI

A injeção de dependência e contextos (CDI), antes conhecido como web beans, é parte integrante do Java EE 6 e fornece uma arquitetura que permite aos componentes do Java EE como servlets, enterprise beans e JavaBeans existir durante o ciclo de vida de um aplicativo com escopos bem definidos. Além disso, o serviço CDI permite que os componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF) sejam injetados e interajam de maneira acoplada flexível, disparando e observando eventos. O CDI define um conjunto de serviços que deixa o desenvolvimento de aplicações muito mais fácil.

Servidores de aplicação JEE 6

Como dito inicialmente a plataforma necessita de um servidor para executar as aplicações atualmente os servidores de aplicações que rodam o java ee 6 são o glassfish 3, tomcat 7 e o jboss 6 acredito que muitos outros servidores de aplicação java serão atualizados para essa recente versão. Uma única observação é que o tomcat não é totalmente compatível com a nova plataforma tendo apenas alguns recursos.

O glassfish, da Oracle, foi a primeira implementação do java ee6, apesar de o grande temor do projeto acabar, a Oracle confirma que continuará apoiando o projeto. O glassfish hoje é a preferência número um entre os desenvolvedores java.

O jboss, da empesa red hat, nasceu como o EJBoss, que era apenas um Container EJB, depois evoluiu para um servidor de aplicações JavaEE completo. Diferente do que aconteceu com as versões anteriores o JBoss 6 ele agrega os recursos do JavaEE6 além de correções de bus e melhorias de performance.

O tomcat, da Apache Foundation, na sua sétima versão traz dentre suas maiores novidades o suporte total à especificação do Servlet 3.0 e JavaServer Pages 2.2, EL 2.2 e todo o código desatualizado foi removido.

Conclusão

Com muito novos recursos o JSR 316 traz novidades para aplicações web de todos os tamanhos agora já é possível implementar uma aplicação atualizada com o mercado muito comum em grandes empresas de maneira mais simples. Dentre esses novos alguns eram exclusivos a alguns frameworks e agora é nativo o java ee a cada versão traz dezenas de novidades para aumentar a produtividade do desenvolvedor.

Confira também