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

Imagem

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:

  1. Filas ponto-a-ponto (queues).
  2. 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.

Imagem

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.

Entradas relacionadas: