GUJavaSC - Desenvolvendo uma Aplicação com Java EE

Post on 25-May-2015

3.846 views 0 download

description

GUJavaSC - Desenvolvendo uma Aplicação com Java EE

Transcript of GUJavaSC - Desenvolvendo uma Aplicação com Java EE

Desenvolvendo uma Aplicação com Java EE

Agenda

Java Enterprise Edition (Java EE)

Java Persistence API (JPA)

Enterprise JavaBeans (EJB)

JavaServer Faces (JSF)

Contexts and Dependency Injection (CDI)

Demonstração

Novidades Java EE 7

Perguntas e Respostas

Plataforma Java

A plataforma é dividida em três partes:Java Standard Edition (Java SE)

Base do Java que contém as principais APIs

Java Enterprise Editon (Java EE)Versão de Java para desenvolvimento de aplicações Web e enterprise que rodam em servidores padronizados

Java Micro Edition (Java ME)Redução da plataforma Standard para dispositivos móveis como PDA e celulares

Java Enterprise Edition

Suporte ao desenvolvimento de aplicações “enterprise”

Aplicações distribuídas, seguras, escaláveis, de alta disponibilidade e com baixo custo de manutenção

Plataforma para desenvolvimento de software de pequeno, médio e grande porte em múltiplas camadas de componentes

Componentes “rodam” em um servidor Java EE

Java Enterprise Edition

Java Enterprise Edition

Containers Java EE

Java Enterprise Edition

Serviços oferecidos pelos containeres Java EE:Gestão de memória, ciclo de vida de objetos

Conexões, Transações, Serviço de nomes

Segurança

Tolerância a falhas

Integração

WebServices

Clustering

Alta disponibilidade

Confiabilidade...

Profiles

Profiles

JPAJava Persistence API

Java Persistence API

Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacional

Integração com outros frameworksHibernate é uma implementação de JPATopLink Essencials é uma implementação de JPA (RI)

POJO (Plain Old Java Objects) EntidadesMapeamento via metadados (annotation Java 5)

Pode ser utilizado fora de containeres EJBs (ligthweigth container)

Uso de injeção de dependência ao invés de lookups JNDI

Java Persistence API

JPA Entity

Java Persistence API

Java Persistence API

EntityManager (javax.persistence)

(B) find / query(C) persist(D) clear / serialização(E) merge (F) remove

Java Persistence API

Persistence Unit

EJBEnterprise JavaBeans

Enterprise Java Beans

Plataforma para criação de aplicações de negócio portáveis, robustas e reutilizáveis usando a linguagem de programação Java;

Componente para construir aplicações sem precisar reinventar uma série de recursos e serviços (transações, segurança, persistência);

Modelo de alto nível para objetos distribuídos (computação distribuída);

Pode ser utilizado em soluções Web e não Web;

Enterprise Java Beans

EJBSession Bean

Java Web

Swing

Cliente WS

Web Browser

JVM + Container EERede Local

Componentes Negócio Compartilhados

Enterprise Java Beans

EJBSession Bean

Se

gu

ran

ça

Co

ntr

ole

Tra

nsa

cio

na

l

Es

cala

bili

da

de

QueuesTopics

DataSources

Environment Entries

EJB

Infra Estrutura do Container

Tipos de EJB:Session Bean

Representa um processo de negócio

Message-Driven BeanTrabalha de forma assíncrona

Singleton BeanEJB introduzido na versão 3.1

Entity BeanRepresenta um objeto persistente

Definido pela especificação JPA

Enterprise Java Beans

Representa um processo de negócio (regra de negócio);

@Stateless Não mantém estado de conversão com o cliente;

Não tem compromisso de manter uma sessão;

Não devemos utilizar atributos de negócio, somente atributos técnicos em cache;

É um EJB econômico;

@StatefulMantém estado de conversão com o cliente;

Cada cliente terá uma instancia do EJB exclusiva, desde a criação até a remoção;

Podemos ter atributos de negócio com métodos getters e setters;

Session Bean

Session Bean

Podem ou não definir interface de acesso

@LocalBean define EJBs sem interfaces

Tipos de InterfacesLocal (@Local)

Somente acesso local (mesma JVM);

Cliente pode ser um componente Web ou outro EJB;

Localização não é transparente (não suporta clusterização).

Remota (@Remote)Suporta acesso remoto (fora da JVM);

Cliente pode ser um componente Web, outro EJB ou aplicação desktop;

Transparência de localização (suporta clusterização).

• EJB Lite Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no

container Java EE Web Profile (.war)

Enterprise Java Beans

EJB Lite EJB Full

• Local Session Beans• CMT / BMT• Segurança Declarativa• Interceptors

• Message-Driven Beans (MDB)• Web Service Endpoints• 2.x / 3.x Remove View• Inter-operabilidade com RMI-IIOP • Timer service• Chamada assíncrona à metodos• 2.x Local View• CMP / BMP Entity Beans

Enterprise Java Beans

Empacotamento SimplificadoPossibilita o deploy de componentes EJBs através de um .war

Somente disponível para os EJB Lite

ejb-jar.xml não é mais necessário

Java EE 5

Java EE 6

Message-Driven Bean

EJB que é acionado de forma assíncrona;

Síncrono Assíncrono

Message-Driven BeanExistem dois tipos de destinos JMS

Point-to-point (queue): uma mensagem enviada para a fila será consumida apenas por um cliente;

Publish-subscriber (topic): uma mensagem pode ser recepcionada por múltiplos clientes;

JSFJavaServer Faces

JavaServer Faces

Java

Especificação

Integração

Ajax Nativo

MVC - Dividir e conquistar

Beleza vs Funcionamento

Código Organizado

Manutenção Fácil

Sabe aonde achar o erro

Principais ComponentesJ2EE Web Container J2EE EJB

Container

Controller ModelView

Servlet JavaBeansJavaServerPages

CustomTag

EJB

javax.faces

JSF e J2EE

Página JSF

Tags: JSF HTML

Tags: JSF Core

Request

ManagedBean

Session

ManagedBean

Application

ManagedBean

Expression Language: EL

Links, formulários, imagens,combo-box, tabelas, etc…

Através destas tags adicionamos validação, conversão de dados, listeners

Dados para popular as tabelas, combo-box, textos.

Páginas JSF

JSF: principais componentes

Pág

ina

JSF

face

s-co

nfi

g.x

ml

Man

aged

Bea

n

Facelets

Integração

Frameworks em JSF

• Basta baixar e usar

CDIContexts and Dependency Injection

CDI (JSR-299)

• CDI = Context Dependency Injection• Novo modelo para gerenciamento de beans e

injeção de dependência• Nova definição para escopos de aplicação• Também conhecido como “Web Beans”• Integra as camadas web e negócio da aplicação

Facilita a implementação das aplicações que utilizam tecnologias como JSF e EJB (Java EE)

CDI (JSR-299)

• Gerenciamento de ciclo de vida de componentes statefull

• Provê um mecanismo de DI typesafe• Disponibiliza mecanismo de eventos facilitando o

desenvolvimento com baixo acoplamento• Tem um mecanismo de Interceptors e Decorators• Possibilita a criação de extensões portáveis para

qualquer implementação• Integração com EL

CDI no Java EE 6

CDI Managed Beans

•Nova definição para “beans•Instâncias são gerenciadas pelo container•Serviços disponíveis

Injeção de DependênciaCiclo de vidaInterceptorsEvents

CDI Managed Beans

Configuração CDI

Hello World

O que pode ser injetado

• CDI Managed Beans (POJO)• Objetos retornados por @Produces • EJB Session Bean (local ou remoto)• Java EE Resources (DataSource, JMS)• JTA UserTransaction• EntityManager (JPA)• Bean Validation Factory• Destination e ConnectionFactory JMS

Principais Recursos

Injection Points Qualifiers Alternatives EL Names Producer Methods Java EE Resources Scopes and Contexts Interceptors Stereotypes Events

Demonstração

Novidades Java EE 7

Java EE 7

• Por onde começar?

Perguntas e Respostas

?