SlideShare a Scribd company logo
1 of 60
Download to read offline
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 
?
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

More Related Content

What's hot

JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootRodrigo Cândido da Silva
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsRodrigo Cândido da Silva
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
Introdução aos Conceitos do WSO2 ESB
Introdução aos Conceitos do WSO2 ESBIntrodução aos Conceitos do WSO2 ESB
Introdução aos Conceitos do WSO2 ESBEdgar Silva
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesRodrigo Cândido da Silva
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!Bruno Borges
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.XEduardo Pires
 
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
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
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 

What's hot (20)

JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
 
GUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In ActionGUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In Action
 
JUDCon Brazil 2013
JUDCon Brazil 2013JUDCon Brazil 2013
JUDCon Brazil 2013
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
Introdução aos Conceitos do WSO2 ESB
Introdução aos Conceitos do WSO2 ESBIntrodução aos Conceitos do WSO2 ESB
Introdução aos Conceitos do WSO2 ESB
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.X
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
 
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...QCon SP 2016 -  WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
QCon SP 2016 - WebAPIs e delivery: Matando a fome de 1 milhão de pedidos men...
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 

Viewers also liked

Batch Processing - Processamento em Lotes no Mundo Corporativo
Batch Processing - Processamento em Lotes no Mundo CorporativoBatch Processing - Processamento em Lotes no Mundo Corporativo
Batch Processing - Processamento em Lotes no Mundo CorporativoRodrigo Cândido da Silva
 
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
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
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTRodrigo Cândido da Silva
 
Suportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EESuportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EERodrigo Cândido da Silva
 
GUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com JavaGUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com JavaRodrigo Cândido da Silva
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EERodrigo Cândido da Silva
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2Rodrigo Cândido da Silva
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EEJavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EERodrigo Cândido da Silva
 
JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2Rodrigo Cândido da Silva
 
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EEConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EERodrigo Cândido da Silva
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 

Viewers also liked (11)

Batch Processing - Processamento em Lotes no Mundo Corporativo
Batch Processing - Processamento em Lotes no Mundo CorporativoBatch Processing - Processamento em Lotes no Mundo Corporativo
Batch Processing - Processamento em Lotes no Mundo Corporativo
 
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
JavaOne LATAM 2015 - Batch Processing: Processamento em Lotes no Mundo Corpor...
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
 
Suportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EESuportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EE
 
GUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com JavaGUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com Java
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
 
ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2ConFoo 2015 - Securing RESTful resources with OAuth2
ConFoo 2015 - Securing RESTful resources with OAuth2
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EEJavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
 
JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2JavaOne 2014 - Securing RESTful Resources with OAuth2
JavaOne 2014 - Securing RESTful Resources with OAuth2
 
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EEConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 

Similar to Java EE Mini-Curso: Introdução aos Principais Conceitos e Tecnologias

GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EERodrigo Cândido da Silva
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA Rodrigo Cândido da Silva
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)mauriciopel
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBAdriano Teixeira de Souza
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeAdriano Tavares
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaAndrei Tognolo
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Javaarmeniocardoso
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 

Similar to Java EE Mini-Curso: Introdução aos Principais Conceitos e Tecnologias (20)

Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
Tutorial Java EE
Tutorial Java EETutorial Java EE
Tutorial Java EE
 
EJB
EJBEJB
EJB
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
Navegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo javaNavegando em um mar de siglas do mundo java
Navegando em um mar de siglas do mundo java
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Java
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 

Java EE Mini-Curso: Introdução aos Principais Conceitos e Tecnologias

  • 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
  • 58.
  • 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