Java EE 6: Da configuração aos testes - Parte 2
Java EE 6: Da configuração aos testes - Parte 3
Este artigo apresenta um conjunto de tecnologias envolvidas em um projeto Java EE 6, como Maven, JBoss AS, CDI, EJB, JPA, JSF, PrimeFaces e Arquillian. Além de uma introdução sobre cada uma dessas tecnologias, também será abordado como elas podem se integrar para ajudar no desenvolvimento de aplicações Java EE.
Em que situação o tema é útil:
O artigo visa ajudar desenvolvedores que desejam ver um conjunto de tecnologias trabalhando em conjunto em um projeto Java EE 6, trazendo benefícios como automatização de tarefas, aumento de produtividade e melhoria da qualidade da aplicação.
Resumo DevMan:
Um projeto Java EE 6 pode envolver muitas tecnologias relacionadas, pois além do próprio código a ser desenvolvido, ainda é preciso escolher a ferramenta de build, de criação de testes automatizados, um servidor de aplicação, entre outros. O objetivo desse artigo não é de esmiuçar todas essas tecnologias, mas sim apresentar uma visão geral sobre cada uma delas e mostrar como elas podem se relacionar.
O desenvolvimento de aplicações web é um assunto que continua em bastante evidência no mercado de software. Entre outros fatores, isto se deve ao crescente número de pessoas acessando a internet, o que faz com que as empresas cada vez mais procurem se expor por meio de sites para os possíveis clientes. Além disso, tem-se a criação das intranets, que permitem uma maior interação com funcionários e fornecedores. Mas não são apenas as empresas que estão seguindo este caminho. Muitas pessoas “comuns” têm criado sites para falar sobre algum assunto em particular ou mesmo para tentar vender alguma ideia. Outro aspecto importante é que os sites não são mais acessados quase que totalmente por computadores. Na verdade, a quantidade de acessos a sites utilizando dispositivos móveis como smartphones e tablets tem crescido a cada dia. Junto com esse mar de oportunidades que a grande quantidade de usuários provê, vem um conjunto de desafios no que diz respeito à usabilidade, segurança, tempo de resposta, flexibilidade, qualidade e escalabilidade dessas aplicações.
Para ajudar a vencer esses desafios impostos aos desenvolvedores, muitas ferramentas e tecnologias licenciadas e open source têm sido propostas visando atacar várias áreas do desenvolvimento, como a criação de interfaces ricas, melhor experiência ao usuário com o uso intensivo de Ajax, cloud computing para permitir um crescimento constante ou de pico da quantidade de acessos, técnicas de processamento distribuído e caches para ganho de performance, ferramentas para testes automatizados eficazes, entre outras. Com esse mundo de tecnologias à disposição do desenvolvedor, é extremamente importante que ele saiba escolher as que melhor se adequam aos requisitos de um determinado projeto e para uma determinada equipe.
Neste artigo será mostrado como desenvolver uma aplicação usando um conjunto bastante atual de tecnologias e ferramentas que vem fazendo com que a implementação de aplicações web se torne cada vez mais produtiva e eficiente: Java EE 6, PrimeFaces, Arquillian, Maven e JBoss AS 7. Essas tecnologias e ferramentas oferecem ao desenvolvedor um suporte bem completo em várias etapas do desenvolvimento de software, passando pelo controle transacional, injeção de dependências, acesso a banco de dados, mapeamento objeto relacional, interface gráfica, testes de integração, gerenciamento de dependências, build e deploy! Vale ressaltar que todas elas são tecnologias open-source, contando com uma enorme colaboração de toda a comunidade.
Esta minissérie está organizada em três partes. Na primeira, será apresentada uma introdução sobre as tecnologias que serão utilizadas, passando pela contextualização sobre o modelo e os requisitos da aplicação e pelo desenvolvimento da primeira versão do seu back-end.
Tecnologias envolvidas
Para o desenvolvimento de uma aplicação exemplo durante o artigo, serão abordadas tecnologias e ferramentas bastante variadas, cada uma atuando em segmentos diferentes da aplicação, como desenvolvimento de interfaces ricas para interação com o usuário, uma camada de negócios e outra de integração com o banco de dados, criação de testes de integração automatizados, build e deploy da aplicação. Como são muitas tecnologias, é impossível um detalhamento sobre cada uma delas em um artigo, porém, em edições anteriores da revista, o leitor pode encontrar mais detalhes sobre quase todas elas, com exceção do Arquillian.
Java EE 6
Java EE 6 (Java Enterprise Edition 6) define um conjunto de especificações para o desenvolvimento de aplicações Enterprise. Esse conjunto é bastante completo, passando pela especificação de Servlets, JAX-WS (Web Services SOAP), JAX-RS (Web Services Rest), EJB, JMS, JSF, CDI, entre muitas outras. A cada nova versão do Java EE essas tecnologias têm sido evoluídas com melhorias e novas funcionalidades, sempre buscando maior facilidade de uso, e o reflexo disso é uma maior popularização da tecnologia, derrubando inclusive certo preconceito que boa parte dos desenvolvedores Java tinha por conta da complexidade desnecessária presente nas versões anteriores de Java EE. Muitas dessas melhorias foram inspiradas em frameworks criados pela comunidade, como é o caso do Hibernate, do Spring e do JBoss Seam. Por se tratarem de especificações, aplicações Java EE podem ser executadas em qualquer container que as implemente, como é o caso do JBoss AS 7.
EJB 3.1
EJB (Enterprise JavaBeans) é a especificação que define uma arquitetura para desenvolvimento de aplicações modulares focada em componentes de negócio, com grande apelo em requisitos não funcionais como robustez e escalabilidade. É uma das especificações que mais sofreu críticas em suas versões anteriores, pelo excesso de complexidade introduzido de forma desnecessária. A versão 3.1, presente no Java EE 6, continua trazendo melhorias para simplificação do desenvolvimento, seguindo o caminho iniciado pela versão 3, lançada junto com o Java EE 5. Algumas melhorias a serem citadas é a possibilidade de se empacotar EJBs em aplicações WAR e o fato de que a criação de interfaces locais passou a ser opcional.
JSF 2
JavaServer Faces define um framework para o desenvolvimento simplificado de interfaces gráficas baseadas em componentes. É fortemente guiado pelo consagrado modelo MVC (Model-View-Controller) e além dos recursos para desenvolvimento das interfaces, que é a parte de visão, também cuida da parte do controlador, como por exemplo, o recebimento dos dados informados pelo usuário, validação desses dados, definição do fluxo de navegação e integração com os componentes de negócio. Em suas primeiras versões (1.x), o JSF sofreu muitas críticas, principalmente pela grande quantidade de configurações via arquivos XML e a falta de suporte nativo a Ajax, pontos que foram profundamente aprimorados pela versão 2.
JPA 2
A Java Persistence API lida com uma necessidade bastante comum para a grande maioria das aplicações, que é persistir, consultar e gerenciar objetos entre o modelo orientado a objetos da aplicação e o modelo relacional dos sistemas gerenciadores de banco de dados (SGBDs). Essa prática é conhecida como ORM (Object-relational mapping).
JPA é uma das especificações mais consolidadas do Java EE e continua trazendo evoluções, como a API de criteria e as novas anotações de mapeamento, com maior foco no mapeamento de coleções.
CDI
Sem dúvida esta é a especificação de maior impacto no Java EE 6. O CDI é baseado fortemente em conceitos como injeção de dependências e inversão de controle e trouxe recursos bastante interessantes, como métodos produtores, tratamento de eventos assíncronos, possibilidade de se injetar qualquer tipo de POJO em outra classe, entre outros. Por tratar de assuntos comuns a todas as camadas de aplicações Java EE, o CDI atua de modo transversal, podendo ser usado por todas elas.
PrimeFaces
Framework que trabalha em cima do JSF, traz uma coleção bem extensa de componentes ricos prontos para serem utilizados na camada de apresentação. Ele aposta bastante no aspecto visual dos seus componentes e na facilidade de programação destes, mesmo para aqueles mais “ricos” visualmente. Além disso, tem como principais concorrentes o RichFaces, que é da JBoss, e o IceFaces, que inclusive tem boa parte dos seus componentes baseada no próprio PrimeFaces.
Arquillian
Uma das maiores críticas que a comunidade Java fazia às especificações anteriores do Java EE era sobre a dificuldade em se criar testes de integração para seus componentes, tarefa que sempre foi bastante simples utilizando Spring. Visando resolver essa questão, a Red Hat/JBoss decidiu criar o Arquillian, um excelente framework para construção de testes de integração, que veio com o objetivo de acabar com essa escrita de que é complicado testar aplicações Java EE .
...Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.