Quer ter acesso a todos os cursos desse Guia?
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 conteúdos:
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:
Agora conheça a CDI, Context and Dependency Injection, um conjunto de serviços que auxiliam a manter a qualidade da estrutura do código, permitindo a criação de programas mais coesos e com classes menos acopladas:
Conheça mais sobre a especificação CDI com o seguintes artigos:
-
ArtigoIntrodução ao padrão Injeção de Dependências
-
ArtigoResolvendo dependências com CDI
-
ArtigoJava EE 6 e o CDI – Contexts and Dependency Injection
-
ArtigoConfigurando o CDI em projetos Java
-
ArtigoContextos e Injeção de Dependência (CDI) para Java EE
-
ArtigoJava EE CDI: Como e quando utilizar Interceptors e Decorators
-
ArtigoEJB versus CDI
Para uma abordagem prática, recomendamos os seguintes conteúdos:
-
ArtigoJava CDI: Criando beans com o CDI Producer
-
ArtigoIntegrando sistemas com Apache CXF e CDI
-
ArtigoComo criar extensões CDI
-
ArtigoApache DeltaSpike: CDI Programável
-
ArtigoTestes de integração utilizando CDI, JPA e EJB e Arquillian
-
ArtigoCDI Ambiguous Dependencies: Aprenda o que é e como resolver
-
ArtigoCriando uma aplicação corporativa em Java
-
ArtigoCriando e configurando um projeto Web - JSF 2, Primefaces 3 e CDI
-
ArtigoPortlets 3.0: Novos recursos para o desenvolvimento de portais
-
ArtigoCDI 2.0: avanços no Java EE e além Novo!
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:
-
ArtigoConhecendo o Apache Tomcat e o TomEE
-
ArtigoDesenvolvimento de aplicações corporativas com Apache TomEE
-
ArtigoAlta disponibilidade com GlassFish
-
ArtigoIntrodução ao JBoss Application Server 7
-
ArtigoWildFly - Do básico ao ambiente de produção
-
ArtigoExplorando o WildFly 8
-
ArtigoPrimeiros passos com o WildFly Swarm
-
ArtigoConstruindo aplicações reativas com Undertow
-
ArtigoWebLogic Multitenant: A nuvem dentro do servidor de aplicação
-
ArtigoJava EE 7: Como recuperar listagens sob demanda
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 os cursos a seguir 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:
-
ArtigoDesenvolvendo um carrinho de compras com Java EE 6
-
ArtigoAs novidades da Java EE 7 na prática
-
ArtigoImplementando o Data Access Object no Java EE
-
ArtigoDesenvolvendo aplicações com Java EE 7
-
ArtigoDesenvolva aplicações com AngularJS e Java EE
-
ArtigoComo construir uma aplicação de Controle de Projetos com JavaEE
-
VídeoIntegrando relatórios Pentaho Report com JAVA EE no Eclipse
-
ArtigoModularização dinâmica em Java com OSGi Novo!
-
ArtigoSegurança em sistemas corporativos
-
VídeoAplicações corporativas multicamadas
Mais sobre Java
Além dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:
-
Guia de CarreiraProgramador Java Guia
-
Guia de consultaLinguagem Java Guia
-
Guia de consultaHibernate Guia
-
Guia de consultaJSF - JavaServer Faces Guia
-
Guia de consultaSpring Framework Guia
-
Guia de consultaREST e Java Guia
-
Guia de consultaPadrões de Projeto em Java Guia
-
Guia de consultaTestes e DevOps Guia
-
Guia de consultaBigData com Java Guia
Além disso, você pode conferir todo o conteúdo de Java clicando aqui.
<Perguntas frequentes>