SlideShare uma empresa Scribd logo
Mini-curso Java EE
Sobre 
Especialista Java 
Java Platform 
Coordenador GUJavaSC 
http://gujavasc.org 
Twitter 
@rcandidosilva 
Personal 
http://rodrigocandido.me
Agenda 
Plataforma Java 
Java Enterprise Edition (Java EE) 
Java Persistence API (JPA) 
Enterprise JavaBeans (EJB) 
JavaServer Faces (JSF) 
Contexts and Dependency Injection (CDI) 
Perguntas e Respostas
Plataforma Java
Porque Java? 
68% das novas aplicações são em Java 
Java substituiu o C++ como a competência mais 
procurada em profissionais 
2 milhões de novos profissionais de TI são 
necessários a cada ano 
Java é executado em múltiplas plataformas 
Java é executado em ampla gama de 
dispositivos, de Smart Cards aos servidores dos 
grandes Data Centers
Java Everywhere
Quais empresas usam Java
Mercado
Oportunidades
JAVA EE
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 
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...
Java EE Timeline 
J2EE 1.3 
CMP, 
Connector 
Architecture 
J2EE 1.4 
Web 
Services 
Mgmt, 
Deployment, 
Async 
Connector 
Java EE 5 
Ease of 
Development, 
EJB 3, JPA, 
JSF, JAXB, 
JAX-WS, 
StAX, SAAJ 
Java EE 6 
Pruning, 
Extensibility 
Ease of Dev, 
CDI, JAX-RS 
Web 
Profile 
Servlet 3, 
EJB 3.1 Lite 
Java EE 7 
JMS 2, 
Batch, TX, 
Concurrency, 
Interceptor, 
WebSocket, 
JSON 
JAX-RPC, CMP/ 
BMP, JSR 88 
Web 
Profile 
JAX-RS 2
Java EE Overview 
Managed Beans 1.0 EJB 3.2 
Connector 
1.6 
Servlet 3.1 
Portable 
Extensions 
JSF 2.2 JAX-RS 
2.0 
Bean Validation 1.1 
EL 3.0 
JPA 2.1 JTA 1.2 
JMS 2.0 
JSP 2.2 
Interceptors 1.1 CDI 1.1 
Common 
Annotations 
1.1 
Major Updated 
Release 
New 
Concurrency Utilities 
(JSR 236) 
Batch Applications 
(JSR 352) 
Java API for JSON 
(JSR 353) 
Java API for WebSocket 
(JSR 356)
Exercício 
Criando um projeto Java EE 
https://github.com/gujavasc/minicurso-javaee
JavaServer Faces 
JSF
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 Componentes 
J2EE Web Container J2EE EJB 
Container 
JSF e J2EE 
Controller 
Model 
View 
Java 
Server 
Pages 
Servlet 
JavaBeans 
Custom 
Tag 
EJB 
javax.faces
Página JSF 
Tags: JSF HTML 
Tags: JSF Core 
Request 
Managed 
Bean 
Session 
Managed 
Bean 
Application 
Managed 
Bean 
Links, formulários, imagens, 
combo-box, tabelas, etc… 
Expression Language: EL 
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 
faces-config.xml Página JSF 
Managed Bean
Facelets
Integração
Frameworks em JSF 
Basta baixar e usar
Exercício 
Desenvolvimento Web com JSF 
https://github.com/gujavasc/minicurso-javaee
Java Persistence API 
JPA
Java Persistence API 
Primeira especificação (padrão) de mapeamento de objetos 
Java para base de dados relacional 
Integração com outros frameworks 
Hibernate é uma implementação de JPA 
TopLink Essencials é uma implementação de JPA (RI) 
POJO (Plain Old Java Objects) à Entidades 
Mapeamento 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
Java Persistence API 
JPA Entity
Java Persistence API 
EntityManager (javax.persistence) 
(B) find / query 
(C) persist 
(D) clear / serialização 
(E) merge 
(F) remove
Java Persistence API 
Persistence Unit
Exercício 
Implementando persistência com JPA 
https://github.com/gujavasc/minicurso-javaee
Enterprise JavaBeans 
EJB
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 
EJB 
Componentes Negócio Compartilhados 
Session Bean 
Java Web 
Swing 
Cliente WS 
Web Browser 
JVM + Container EE 
Rede Local
Enterprise Java Beans 
EJB 
Session Bean 
Segurança 
Controle Transacional 
Escalabilidade 
Queues 
Topics 
Data 
Sources 
Environment 
Entries 
EJB 
Infra Estrutura do Container
Enterprise Java Beans 
Tipos de EJB: 
Session Bean 
Representa um processo de negócio 
Message-Driven Bean 
Trabalha de forma assíncrona 
Singleton Bean 
EJB introduzido na versão 3.1 
Entity Bean 
Representa um objeto persistente 
Definido pela especificação JPA
Session Bean 
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; 
@Stateful 
Manté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 
Podem ou não definir interface de acesso 
@LocalBean define EJBs sem interfaces 
Tipos de Interfaces 
Local (@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).
Enterprise Java Beans 
• EJB Lite 
ü Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no 
container Java EE Web Profile (.war) 
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 Simplificado 
Possibilita 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 Bean 
Existem 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;
Exercício 
Implementando as regras de negócio com EJB 
https://github.com/gujavasc/minicurso-javaee
Contexts and Dependency Injection 
CDI
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
CDI Managed Beans 
Nova definição para 
“beans 
Instâncias são 
gerenciadas pelo 
container 
Serviços disponíveis 
Injeção de Dependência 
Ciclo de vida 
Interceptors 
Events
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
Exercício 
Integrando as camadas da aplicação com CDI 
https://github.com/gujavasc/minicurso-javaee
Perguntas e Respostas 
?
GUJavaSC - Mini-curso Java EE
Iniciativas 
Eventos mensais; 
Blog; 
Redes sociais; 
Listas de discussão; 
Organização de eventos; 
Projetos open source; 
Adopt an JSR; 
…
Como Colaborar 
Site: 
http://gujavasc.org 
Twitter 
https://twitter.com/gujavasc 
Github 
https://github.com/gujavasc 
Facebok: 
http://facebook.com/groups/gujavasc

Mais conteúdo relacionado

Mais procurados (20)

PDF
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 
PDF
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Rodrigo Cândido da Silva
 
PDF
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
PDF
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
Rodrigo Cândido da Silva
 
PDF
TDC 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
PDF
As novidades da nova versão do Java 9
Rodrigo Cândido da Silva
 
PDF
GUJavaSC - Java EE 7 In Action
Rodrigo Cândido da Silva
 
ODP
JUDCon Brazil 2013
George Gastaldi
 
PDF
MC - Java Enterprise Edition 6 (Java EE)
Rodrigo Cândido da Silva
 
PDF
Microservices com ASP.NET 5
Waldyr Felix
 
PPTX
Introdução aos Conceitos do WSO2 ESB
Edgar Silva
 
PDF
JBoss Fuse Workshop Desenvolvimento - Parte 1
Paulo Roberto de Castro Filho
 
PDF
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Elvis Rocha
 
PDF
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Tiago Marchetti Dolphine
 
ODP
GlassFish e Maven: Java EE sem dor!
Bruno Borges
 
PPTX
Novidades do ASP.NET 5.X
Eduardo Pires
 
PDF
GUJavaSC - Protegendo Microservices em Java
Rodrigo Cândido da Silva
 
PDF
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
Tiago Marchetti Dolphine
 
PDF
GlassFish, Maven, Cloud e Java EE
Bruno Borges
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Rodrigo Cândido da Silva
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
Rodrigo Cândido da Silva
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
Rodrigo Cândido da Silva
 
As novidades da nova versão do Java 9
Rodrigo Cândido da Silva
 
GUJavaSC - Java EE 7 In Action
Rodrigo Cândido da Silva
 
JUDCon Brazil 2013
George Gastaldi
 
MC - Java Enterprise Edition 6 (Java EE)
Rodrigo Cândido da Silva
 
Microservices com ASP.NET 5
Waldyr Felix
 
Introdução aos Conceitos do WSO2 ESB
Edgar Silva
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
Paulo Roberto de Castro Filho
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Elvis Rocha
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Tiago Marchetti Dolphine
 
GlassFish e Maven: Java EE sem dor!
Bruno Borges
 
Novidades do ASP.NET 5.X
Eduardo Pires
 
GUJavaSC - Protegendo Microservices em Java
Rodrigo Cândido da Silva
 
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
Tiago Marchetti Dolphine
 
GlassFish, Maven, Cloud e Java EE
Bruno Borges
 

Destaque (11)

PDF
Batch Processing - Processamento em Lotes no Mundo Corporativo
Rodrigo Cândido da Silva
 
PDF
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
Rodrigo Cândido da Silva
 
PDF
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
Rodrigo Cândido da Silva
 
PDF
Suportando Aplicações Multi-tenancy com Java EE
Rodrigo Cândido da Silva
 
PDF
GUJavaSC - Criando Micro-serviços Reativos com Java
Rodrigo Cândido da Silva
 
PDF
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
 
PDF
ConFoo 2015 - Securing RESTful resources with OAuth2
Rodrigo Cândido da Silva
 
PDF
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
PDF
JavaOne 2014 - Securing RESTful Resources with OAuth2
Rodrigo Cândido da Silva
 
PDF
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
PPT
Oracle WebLogic Server Basic Concepts
James Bayer
 
Batch Processing - Processamento em Lotes no Mundo Corporativo
Rodrigo Cândido da Silva
 
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
Rodrigo Cândido da Silva
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
Rodrigo Cândido da Silva
 
Suportando Aplicações Multi-tenancy com Java EE
Rodrigo Cândido da Silva
 
GUJavaSC - Criando Micro-serviços Reativos com Java
Rodrigo Cândido da Silva
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
 
ConFoo 2015 - Securing RESTful resources with OAuth2
Rodrigo Cândido da Silva
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
JavaOne 2014 - Securing RESTful Resources with OAuth2
Rodrigo Cândido da Silva
 
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
Oracle WebLogic Server Basic Concepts
James Bayer
 
Anúncio

Semelhante a GUJavaSC - Mini-curso Java EE (20)

PDF
Serra StarTec 2013 - Java EE
Rodrigo Cândido da Silva
 
PPT
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva
 
PDF
Java OO Middleware - JEE / EJB / RMI
Yitzhak Stone
 
PPT
Enterprise JavaBeans simples e descomplicado, na prática
Globalcode
 
PDF
J530 5 stateless
Denis L Presciliano
 
PDF
Tutorial EJB 3.0 (2009)
Helder da Rocha
 
PDF
Novidades de Java EE 7
pt_programar
 
PPT
Enterprise Java Beans
Rubem Azenha
 
PPT
Enterprise JavaBeans
elliando dias
 
PDF
J530 15 workshop
Denis L Presciliano
 
PDF
Flisolgo2010
Paulo Jerônimo
 
PDF
JAVABEANS.pdf
BrunoMedeiros524886
 
PDF
J530 7 bmp
Denis L Presciliano
 
PDF
Repensando padrões e boas práticas java ee
Adriano Tavares
 
PPT
Web Sphere
Fabricio Carvalho
 
PDF
Começando com Java EE 6
danferreira
 
PDF
Introducao EJB 3
Rodrigo Cândido da Silva
 
PDF
Parte 1 Introducao
guest7ff4e2
 
PDF
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
MoisesInacio
 
Serra StarTec 2013 - Java EE
Rodrigo Cândido da Silva
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva
 
Java OO Middleware - JEE / EJB / RMI
Yitzhak Stone
 
Enterprise JavaBeans simples e descomplicado, na prática
Globalcode
 
J530 5 stateless
Denis L Presciliano
 
Tutorial EJB 3.0 (2009)
Helder da Rocha
 
Novidades de Java EE 7
pt_programar
 
Enterprise Java Beans
Rubem Azenha
 
Enterprise JavaBeans
elliando dias
 
J530 15 workshop
Denis L Presciliano
 
Flisolgo2010
Paulo Jerônimo
 
JAVABEANS.pdf
BrunoMedeiros524886
 
Repensando padrões e boas práticas java ee
Adriano Tavares
 
Web Sphere
Fabricio Carvalho
 
Começando com Java EE 6
danferreira
 
Introducao EJB 3
Rodrigo Cândido da Silva
 
Parte 1 Introducao
guest7ff4e2
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
MoisesInacio
 
Anúncio

GUJavaSC - Mini-curso Java EE

  • 2. Sobre Especialista Java Java Platform Coordenador GUJavaSC http://gujavasc.org Twitter @rcandidosilva Personal http://rodrigocandido.me
  • 3. Agenda Plataforma Java Java Enterprise Edition (Java EE) Java Persistence API (JPA) Enterprise JavaBeans (EJB) JavaServer Faces (JSF) Contexts and Dependency Injection (CDI) Perguntas e Respostas
  • 5. Porque Java? 68% das novas aplicações são em Java Java substituiu o C++ como a competência mais procurada em profissionais 2 milhões de novos profissionais de TI são necessários a cada ano Java é executado em múltiplas plataformas Java é executado em ampla gama de dispositivos, de Smart Cards aos servidores dos grandes Data Centers
  • 11. 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
  • 13. 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...
  • 14. Java EE Timeline J2EE 1.3 CMP, Connector Architecture J2EE 1.4 Web Services Mgmt, Deployment, Async Connector Java EE 5 Ease of Development, EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Web Profile Servlet 3, EJB 3.1 Lite Java EE 7 JMS 2, Batch, TX, Concurrency, Interceptor, WebSocket, JSON JAX-RPC, CMP/ BMP, JSR 88 Web Profile JAX-RS 2
  • 15. Java EE Overview Managed Beans 1.0 EJB 3.2 Connector 1.6 Servlet 3.1 Portable Extensions JSF 2.2 JAX-RS 2.0 Bean Validation 1.1 EL 3.0 JPA 2.1 JTA 1.2 JMS 2.0 JSP 2.2 Interceptors 1.1 CDI 1.1 Common Annotations 1.1 Major Updated Release New Concurrency Utilities (JSR 236) Batch Applications (JSR 352) Java API for JSON (JSR 353) Java API for WebSocket (JSR 356)
  • 16. Exercício Criando um projeto Java EE https://github.com/gujavasc/minicurso-javaee
  • 18. JavaServer Faces Java Especificação Integração Ajax Nativo
  • 19. MVC - Dividir e conquistar Beleza vs Funcionamento Código Organizado Manutenção Fácil Sabe aonde achar o erro
  • 20. Principais Componentes J2EE Web Container J2EE EJB Container JSF e J2EE Controller Model View Java Server Pages Servlet JavaBeans Custom Tag EJB javax.faces
  • 21. Página JSF Tags: JSF HTML Tags: JSF Core Request Managed Bean Session Managed Bean Application Managed Bean Links, formulários, imagens, combo-box, tabelas, etc… Expression Language: EL Através destas tags adicionamos validação, conversão de dados, listeners Dados para popular as tabelas, combo-box, textos. Páginas JSF
  • 22. JSF: principais componentes faces-config.xml Página JSF Managed Bean
  • 25. Frameworks em JSF Basta baixar e usar
  • 26. Exercício Desenvolvimento Web com JSF https://github.com/gujavasc/minicurso-javaee
  • 28. Java Persistence API Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacional Integração com outros frameworks Hibernate é uma implementação de JPA TopLink Essencials é uma implementação de JPA (RI) POJO (Plain Old Java Objects) à Entidades Mapeamento 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
  • 30. Java Persistence API JPA Entity
  • 31. Java Persistence API EntityManager (javax.persistence) (B) find / query (C) persist (D) clear / serialização (E) merge (F) remove
  • 32. Java Persistence API Persistence Unit
  • 33. Exercício Implementando persistência com JPA https://github.com/gujavasc/minicurso-javaee
  • 35. 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;
  • 36. Enterprise Java Beans EJB Componentes Negócio Compartilhados Session Bean Java Web Swing Cliente WS Web Browser JVM + Container EE Rede Local
  • 37. Enterprise Java Beans EJB Session Bean Segurança Controle Transacional Escalabilidade Queues Topics Data Sources Environment Entries EJB Infra Estrutura do Container
  • 38. Enterprise Java Beans Tipos de EJB: Session Bean Representa um processo de negócio Message-Driven Bean Trabalha de forma assíncrona Singleton Bean EJB introduzido na versão 3.1 Entity Bean Representa um objeto persistente Definido pela especificação JPA
  • 39. Session Bean 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; @Stateful Manté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;
  • 40. Session Bean Podem ou não definir interface de acesso @LocalBean define EJBs sem interfaces Tipos de Interfaces Local (@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).
  • 41. Enterprise Java Beans • EJB Lite ü Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no container Java EE Web Profile (.war) 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
  • 42. Enterprise Java Beans Empacotamento Simplificado Possibilita 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
  • 43. Message-Driven Bean EJB que é acionado de forma assíncrona; Síncrono Assíncrono
  • 44. Message-Driven Bean Existem 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;
  • 45. Exercício Implementando as regras de negócio com EJB https://github.com/gujavasc/minicurso-javaee
  • 46. Contexts and Dependency Injection CDI
  • 47. 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)
  • 48. 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
  • 50. CDI Managed Beans Nova definição para “beans Instâncias são gerenciadas pelo container Serviços disponíveis Injeção de Dependência Ciclo de vida Interceptors Events
  • 54. 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
  • 55. Principais Recursos Injection Points Qualifiers Alternatives EL Names Producer Methods Java EE Resources Scopes and Contexts Interceptors Stereotypes Events
  • 56. Exercício Integrando as camadas da aplicação com CDI https://github.com/gujavasc/minicurso-javaee
  • 59. Iniciativas Eventos mensais; Blog; Redes sociais; Listas de discussão; Organização de eventos; Projetos open source; Adopt an JSR; …
  • 60. Como Colaborar Site: http://gujavasc.org Twitter https://twitter.com/gujavasc Github https://github.com/gujavasc Facebok: http://facebook.com/groups/gujavasc