SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
Plataforma Java EE
Boa tarde !!!
!   Rodrigo Cândido da Silva
! http://about.me/rcandidosilva
!  @rcandidosilva
Agenda
!   Plataforma Java
!   Java Enterprise Edition (Java EE)
!   Java Persistence API (JPA)
!   Enterprise JavaBeans (EJB)
!   JavaServer Faces (JSF)
!   Contexts and Dependency Injection (CDI)
!   Java EE 7
!   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...
JPA
Java Persistence API
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
!   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
EJB
Enterprise 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
EJB
Session Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EE
Rede Local
Componentes Negócio Compartilhados
Enterprise Java Beans
EJB
Session Bean
Segurança
ControleTransacional
Escalabilidade
Queues
Topics
Data
Sources
Environment
Entries
EJB
Infra Estrutura do Container
!   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
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;
!   @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
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).
•  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 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;
JSF
JavaServer 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 Componentes
J2EE Web Container J2EE EJB
Container
Controller ModelView
Servlet JavaBeansJava
Server
Pages
Custom
Tag
EJB
javax.faces
JSF e J2EE
Página JSF
Tags: JSF HTML
Tags: JSF Core
Request
Managed
Bean
Session
Managed
Bean
Application
Managed
Bean
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 componentesPáginaJSFfaces-config.xml
ManagedBean
Facelets
Integração
Frameworks em JSF
!   Basta baixar e usar
CDI
Contexts 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
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
Java EE History
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	
  
Web	
  Profile	
  
	
  
JAX-RS 2
	
  
JAX-RPC, CMP/
BMP, JSR 88
Top 10 no Java EE 6
!   EJB packaging no WAR
!   Type-safe deployment injection
!   Deployment descriptors opcionais (web.xml, etc)
!   Padronização do Facelets no JSF
!   EJB em apenas uma classe
!   Extensibilidade para Servlets e CDI
!   CDI events
!   EJBContainer API
!   @Schedule baseado no modelo Cron
!   Web Profile
Java EE 7 Themes
Java EE 7 Overview
Connector
1.6
Managed Beans 1.0 EJB 3.2
Servlet 3.1
Portable
Extensions
JSF 2.2
JAX-RS
2.0
BeanValidation1.1
JMS 2.0JPA 2.1
EL 3.0
JTA 1.2
JSP 2.2
Interceptors 1.1 CDI 1.1
Common
Annotations
1.1
UpdatedMajor
Release
New
Concurrency Utilities
(JSR 236)
Batch Applications
(JSR 352)
Java API for JSON
(JSR 353)
Java API for WebSocket
(JSR 356)
Java EE 7
! Por onde começar?
Java EE 8.future();
!   JSON-B
!   JCache
!   More CDI/EJB alignment
!   CDI.next()
!   Cloud, PaaS, multitenancy/SaaS
!   JMS.next()?
!   JAX-RS.next()?
!   Security?
!   Modularity?
!   NoSQL?
!   Action-oriented Web framework/HTML 5?
Perguntas e Respostas
?
Eventos
Como Colaborar
!   Blog:
!   http://gujavasc.org
! Facebok:
!   https://facebook.com/groups/gujavasc
!   Twitter
!   https://twitter.com/gujavasc
!   Google+
!   http://bit.ly/15c2QYQ
! Github
!   https://github.com/gujavasc

Mais conteúdo relacionado

Mais procurados

Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer FacesWillian Watanabe
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Javaarmeniocardoso
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cBruno Borges
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaAna Albert
 
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
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise EditionDaniel Arndt Alves
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"sbcars
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)Juarez Junior
 
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
 
Treinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 AdministrationTreinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 AdministrationGustavo Concon
 

Mais procurados (20)

Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Java
 
GUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EEGUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EE
 
JUDCon Brazil 2013
JUDCon Brazil 2013JUDCon Brazil 2013
JUDCon Brazil 2013
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
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)
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
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!
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)
 
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
 
Treinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 AdministrationTreinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 Administration
 
Jee6
Jee6Jee6
Jee6
 

Semelhante a Java EE em 40

Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
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
 
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
 
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EEGUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EERodrigo Cândido da Silva
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no javaPedro Cavalero
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIYitzhak Stone
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaGlobalcode
 
Enterprise Java Beans
Enterprise Java BeansEnterprise Java Beans
Enterprise Java BeansRubem Azenha
 
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
 

Semelhante a Java EE em 40 (20)

GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Tutorial Java EE
Tutorial Java EETutorial Java EE
Tutorial 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
 
GUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In ActionGUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In Action
 
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
 
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EEGUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
GUJavaSC - Alternativas ao Desenvolvimento do Back-end Mobile com Java EE
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
EJB
EJBEJB
EJB
 
Java OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMIJava OO Middleware - JEE / EJB / RMI
Java OO Middleware - JEE / EJB / RMI
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
 
Enterprise Java Beans
Enterprise Java BeansEnterprise Java Beans
Enterprise Java Beans
 
Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5
 
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
 

Mais de Rodrigo Cândido da Silva

Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de ImplementaçãoProtegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de ImplementaçãoRodrigo Cândido da Silva
 
Protecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and StrategiesProtecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and StrategiesRodrigo Cândido da 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
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSRodrigo 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
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesRodrigo Cândido da Silva
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaRodrigo 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
 
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
 
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
 
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
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudRodrigo Cândido da Silva
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...Rodrigo Cândido da Silva
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 

Mais de Rodrigo Cândido da Silva (20)

Java 9, 10 e ... 11
Java 9, 10 e ... 11Java 9, 10 e ... 11
Java 9, 10 e ... 11
 
Cloud Native Java EE
Cloud Native Java EECloud Native Java EE
Cloud Native Java EE
 
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de ImplementaçãoProtegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
 
Protecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and StrategiesProtecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and Strategies
 
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
 
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
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
 
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
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
 
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
 
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
 
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
 
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
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 

Java EE em 40

  • 2. Boa tarde !!! !   Rodrigo Cândido da Silva ! http://about.me/rcandidosilva !  @rcandidosilva
  • 3. Agenda !   Plataforma Java !   Java Enterprise Edition (Java EE) !   Java Persistence API (JPA) !   Enterprise JavaBeans (EJB) !   JavaServer Faces (JSF) !   Contexts and Dependency Injection (CDI) !   Java EE 7 !   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...
  • 15. 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
  • 17. !   JPA Entity Java Persistence API
  • 18. Java Persistence API !   EntityManager (javax.persistence) (B) find / query (C) persist (D) clear / serialização (E) merge (F) remove
  • 19. Java Persistence API !   Persistence Unit
  • 21. 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;
  • 22. Enterprise Java Beans EJB Session Bean Java Web Swing Cliente WS Web Browser JVM + Container EE Rede Local Componentes Negócio Compartilhados
  • 23. Enterprise Java Beans EJB Session Bean Segurança ControleTransacional Escalabilidade Queues Topics Data Sources Environment Entries EJB Infra Estrutura do Container
  • 24. !   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 Enterprise Java Beans
  • 25. !   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
  • 26. 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).
  • 27. •  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
  • 28. 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
  • 29. Message-Driven Bean !   EJB que é acionado de forma assíncrona; Síncrono Assíncrono
  • 30. 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;
  • 32. JavaServer Faces !   Java !   Especificação !   Integração !   Ajax Nativo
  • 33. MVC - Dividir e conquistar !   Beleza vs Funcionamento !   Código Organizado !   Manutenção Fácil !   Sabe aonde achar o erro
  • 34. Principais Componentes J2EE Web Container J2EE EJB Container Controller ModelView Servlet JavaBeansJava Server Pages Custom Tag EJB javax.faces JSF e J2EE
  • 35. Página JSF Tags: JSF HTML Tags: JSF Core Request Managed Bean Session Managed Bean Application Managed Bean 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
  • 39. Frameworks em JSF !   Basta baixar e usar
  • 41. 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)
  • 42. 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
  • 44. 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
  • 48. 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
  • 49. Principais Recursos !  Injection Points !  Qualifiers !  Alternatives !  EL Names !  Producer Methods !  Java EE Resources !  Scopes and Contexts !  Interceptors !  Stereotypes !  Events
  • 50. Java EE History 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   Web  Profile     JAX-RS 2   JAX-RPC, CMP/ BMP, JSR 88
  • 51. Top 10 no Java EE 6 !   EJB packaging no WAR !   Type-safe deployment injection !   Deployment descriptors opcionais (web.xml, etc) !   Padronização do Facelets no JSF !   EJB em apenas uma classe !   Extensibilidade para Servlets e CDI !   CDI events !   EJBContainer API !   @Schedule baseado no modelo Cron !   Web Profile
  • 52. Java EE 7 Themes
  • 53. Java EE 7 Overview Connector 1.6 Managed Beans 1.0 EJB 3.2 Servlet 3.1 Portable Extensions JSF 2.2 JAX-RS 2.0 BeanValidation1.1 JMS 2.0JPA 2.1 EL 3.0 JTA 1.2 JSP 2.2 Interceptors 1.1 CDI 1.1 Common Annotations 1.1 UpdatedMajor Release New Concurrency Utilities (JSR 236) Batch Applications (JSR 352) Java API for JSON (JSR 353) Java API for WebSocket (JSR 356)
  • 54. Java EE 7 ! Por onde começar?
  • 55. Java EE 8.future(); !   JSON-B !   JCache !   More CDI/EJB alignment !   CDI.next() !   Cloud, PaaS, multitenancy/SaaS !   JMS.next()? !   JAX-RS.next()? !   Security? !   Modularity? !   NoSQL? !   Action-oriented Web framework/HTML 5?
  • 57.
  • 59. Como Colaborar !   Blog: !   http://gujavasc.org ! Facebok: !   https://facebook.com/groups/gujavasc !   Twitter !   https://twitter.com/gujavasc !   Google+ !   http://bit.ly/15c2QYQ ! Github !   https://github.com/gujavasc