Guia de Linguagem

Java Enterprise Edition - Java EE


Neste Guia de Referência você encontrará todo o conteúdo que precisa para conhecer o Java EE, Java Enterprise Edition, a plataforma Java voltada para o desenvolvimento de aplicações web/corporativas.

Começando no Java EE

Construída sobre a plataforma Java SE, Java Standard Edition, a Java EE, Java Enterprise Edition, dispõe de um conjunto de APIs que permitem ao programador desenvolver aplicações portáteis, confiáveis e seguras. Aqui você encontrará todo o material que precisa para dominar essa tecnologia que, há muitos anos, desponta como a mais utilizada para o desenvolvimento de soluções corporativas. Apresentá-la é função dos seguintes artigos:

Context and Dependency Injection - CDI

Provavelmente você já ouviu falar sobre coesão e acoplamento e como esses termos determinam a qualidade de uma aplicação. Pode-se definir coesão como a relação entre as responsabilidades de uma classe e seus métodos. Uma classe com baixa coesão tem muitas responsabilidades diferentes e pouco relacionadas. Já acoplamento mede o quanto uma classe conhece ou depende de outras para realizar suas tarefas. Esses conceitos, fundamentais para a compreensão dos benefícios da CDI, podem ser relembrados no artigo:

CDI, Context and Dependency Injection, possibilita a implementação de projetos mais coesos e menos acoplados. Definida nos artigos abaixo, esta especificação da Java EE é responsável pela injeção de dependências. Fique por dentro desse assunto com estes artigos:

Para uma abordagem prática, recomendamos os seguintes conteúdos:

Model-View-Controller - MVC

Pode ser novidade, mas existem diferentes tipos de MVC. Um dos modelos propostos na Java EE é o MVC baseado em ações, que redireciona as requisições HTTP para um controlador específico, selecionado a partir de informações contidas na própria requisição. Cabe a esse controlador especificar quais ações tomar, como a configuração de objetos da camada de modelo e a resposta HTTP que será retornada. Ao adotar esse padrão também não estamos presos a uma tecnologia específica para a exibição de telas, podendo utilizar Spring MVC, JSF, entre outras. Saiba mais no artigo:

Processamento JSON

JSON é um dos modelos de documento mais utilizados para comunicação em Web Services. Conhecida como JSON-P, a API JSON Processing, desenvolvida para processamento de documentos nesse formato, foi lançada como uma das novidades da plataforma Java EE 7. Nos artigos a seguir serão apresentadas as principais funcionalidades nela contidas.

JAX-RS - Web services RESTful

REST ganhou notoriedade por ser um estilo arquitetural simplista e ao mesmo tempo poderoso. Isso despertou o interesse da comunidade Java que, por meio da JCP (Java Community Process), iniciou um processo para padronização técnica deste modelo dentro da plataforma. Surgia então o projeto JAX-RS (Java API for RESTful Services). Nestes conteúdos você será apresentado a esta tecnologia e poderá dar seus primeiros passos para a criação de Web Services RESTful em Java:

Para saber mais consulte também o Guia de Referência REST e Java:

WebSocket

HTTP é o protocolo padrão da web. É ele que, dentre outras responsabilidades, determina como dados serão enviados e páginas serão obtidas, possibilitando a criação, inclusive, de aplicações web. Entretanto, algumas aplicações dependem de uma comunicação mais ágil, bidirecional, que está além do modelo baseado em requisição e resposta proposto por esse protocolo. Como exemplo podemos citar sistemas de tempo real, como meteorológicos, bolsas de valores, jogos, entre outros. A solução para essa restrição está no protocolo WebSocket, conteúdo que é apresentado nos artigos:

Concurrency Utilities

Em constante avanço, a tecnologia tem se tornado cada vez mais acessível e supercomputadores podem ser encontrados até mesmo em residências. No entanto, é fundamental que as aplicações sejam capazes de utilizar o hardware de forma eficiente, a fim de traduzir processamento em performance para o usuário, pois como consequência dessa evolução, aplicações podem executar múltiplas ações ao mesmo tempo, paralelamente, em diferentes núcleos de um mesmo processador. No Java, conforme demonstrado no artigo abaixo, isso é possível a partir da Concurrency Utilities API:

Java Transaction API - JTA

Em geral uma aplicação precisa executar tarefas criadas para o negócio, como processar uma venda, e também aquelas que gerenciam os recursos físicos necessários para a completude dessas tarefas, como a atualização de dados em um banco. Uma aplicação transacional procura identificar a natureza desses processos, a fim de dividir responsabilidades em camadas. JTA, Java Transaction API, define uma interface de alto nível, além de anotações, e escopo para demarcar os limites da transação em uma aplicação transacional. Ela permite que interfaces locais sejam utilizadas entre as partes envolvidas em um sistema de transação distribuído como: a aplicação, o gerenciador de recursos e o servidor de aplicação. No artigo abaixo você encontrará uma introdução prática a essa API, bem como seus recursos:

Processamento Batch

É possível que em algum momento você precise gerenciar grandes volumes de dados em sua aplicação. Enviar e-mails para todos os usuários cadastrados com um resumo das publicações realizadas na semana é um exemplo, dentre muitos, que gera a necessidade de programar rotinas específicas. Levando em conta o tempo e os recursos necessários para concluir tarefas dessa natureza, a ideia de processamento de lote foi introduzida. Nesses programas é definido o conjunto de etapas que devem ser concluídas em sequência para a execução do processo. A fim de padronizar a programação dessas rotinas, a Java EE 7 incluiu a biblioteca Batch Applications for the Java Platform, apresentada nos seguintes artigos:

Servidores de aplicação

Um servidor de aplicações, oferece serviços que cuidam de aspectos como segurança, transações, clusterização, controle de falhas, balanceamento de carga, dentre outras necessidades estruturais de uma aplicação web. Em outras palavras, é o servidor de aplicação quem assegura, de forma transparente para o programador, que as transações ocorreram regularmente, permitindo maior dedicação às regras de negócio.

Atualmente existem diversos servidores disponíveis, cada um deles com algumas particularidades. Nestes artigos você será apresentado, de forma prática, aos principais dentre eles:

Na prática

Agora que você já possui o conhecimento técnico necessário, o que acha de praticar construindo uma aplicação Java EE? Com este curso você poderá colocar a mão na massa e utilizar em um contexto real as diversas APIs citadas neste Guia de Referência:

E para continuar aprendendo, uma vez que o conteúdo técnico é apenas o começo, leia e assista os conteúdos reunidos nesta seleção:

Mais sobre Java

Além material sugerido nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:

Além disso, você pode conferir todo o conteúdo de Java clicando aqui.

Ficou com alguma dúvida?