Guia Completo: JPA, EJB, Web Services e Java EE
Classificado em Computação
Escrito em em
com um tamanho de 94,2 KB
JPA (Java Persistence API)
JPA é um framework leve baseado em POJOs (Plain Old Java Objects) para persistir objetos Java. Desenvolvido para a EJB 3.0, como parte da especificação JSR 220, mas não é limitado a EJB; JPA é a ESPECIFICAÇÃO.
Implementações: Hibernate, TopLink, EclipseLink
Características do JPA
- POJOs Persistentes
- ORM feito por annotation e XML
- Consulta em Objetos
- Consultas simples
JPA 2.1 e JPQL
O JPA 2.1 incluiu um grande número de características que não estavam na primeira versão. Uma delas é a capacidade adicional de mapeamento: JPQL (Java Persistence Query Language), uma API para criação de consultas dinâmicas.
Componentes JPA
- EntityManager: Centraliza a interação com o JPA.
- Persistence Unit: Define uma unidade de persistência (acesso a um banco de dados definido no persistence.xml).
- @Entity: Informa ao JPA que a classe é uma entidade e deve ser persistida.
- @Table(name="..."): Informa o nome da tabela que irá persistir a entidade.
- @Id: Marca uma propriedade da classe como chave primária (identificador).
- @GeneratedValue: Define como gerar o ID.
- @Column(name="..."): Informa o nome da coluna que irá persistir o campo.
- @Temporal(tipo): Define Data, Hora e Data+Hora.
- @Transient: Não persiste a coluna.
EJB (Enterprise JavaBeans)
É um componente da plataforma JEE que roda em um container de um servidor de aplicação.
Tipos de Beans
- Entity Beans: Representam objetos que persistem em uma base de dados. Oferecem tolerância a falhas, pooling e reuso de instâncias.
- Session Beans: Executam tarefas para o cliente. Podem manter estado (Stateful) ou não (Stateless). Simplificam o código do cliente.
- Message Driven Beans (MDB): Processam mensagens de modo assíncrono via Java Message Service (JMS).
Arquitetura EJB
Fornece infraestrutura para gerenciamento automático de transações, distribuição de objetos, concorrência, segurança e recursos. Inclui gerenciamento de estado, ciclo de vida e persistência.
Elementos da Arquitetura
- Componente EJB: Classes Java com lógica de negócio (Session Beans e MDBs).
- Servidor EJB: Servidor de aplicação genérico que fornece ambiente compatível com a especificação.
- Container EJB: Fornece contexto de execução e transacional, gerencia o ciclo de vida e interfaces remotas.
Principais APIs Java EE
- EJB: Modelo de componente servidor.
- Servlets e JSP: Suporte a HTML dinâmico e gerenciamento de sessão.
- JNDI: Acesso ao servidor de nomes e diretórios.
- JMS: Comunicação assíncrona.
- RMI: Computação distribuída.
- JTA: Demarcação de transação.
- JAVA IDL: Comunicação CORBA.
- JTS: Gerenciamento de transações distribuídas.
- JDBC: Acesso a bancos de dados relacionais.
- JAAS: Autenticação e autorização.
Tipos de Container
- Java EE Server: Fornece recipientes web e EJB.
- EJB Container: Gerencia a execução de aplicações EJB.
- Web Container: Gerencia JSP e Servlets.
- Application Client Container: Gerencia componentes do cliente.
- Applet Container: Gerencia applets no navegador.
JMS (Java Message Service)
Permite comunicação assíncrona entre aplicações via:
- Filas ponto-a-ponto (queues).
- Canais publish/subscribe (topics).
Messaging (Message-Driven Bean)
Vantagens: Processos não bloqueáveis, garantia de entrega e suporte a múltiplos emissores/receptores.
WebService
Componentes de aplicação distribuídos, independentes de linguagem e plataforma.
Vantagens
- Intercâmbio de dados entre linguagens.
- Desenvolvimento de aplicações distribuídas.
- Acesso via protocolos conhecidos (HTTP).
Modelos
- REST: Recursos possuem URIs e são manipulados por operações HTTP.
- SOAP/WSDL: Interfaces expostas via WSDL (XML) e troca de mensagens via SOAP.
Axis
Ferramenta com integração no Tomcat que auxilia na criação de WebServices (WSDL2Java) e construção de proxies.