SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Java WEB no STI
Funcionário: Marcos Côrtes
E-mail: marcoscortes@id.uff.br
Agenda
● Apresentação
● Conhecimentos Básicos
● Frameworks
○ JSF
○ Spring
○ Hibernate
Aplicações Java STI
CPD
Aplicações Java STI
● Nossas aplicações Web são compostas por:
○ JSF como front-end
○ Spring como controlador de serviços e transações
○ Hibernate como ORM
Arquitetura
View ModelController DB
Conceitos Básicos
IOC / IC
Framework
Escopo
IOC - Inversion Of Control
● O fluxo de controle
da aplicação é da
biblioteca e não ao
programador
● Uma biblioteca
deste tipo pode ser
considerado um
framework
Exemplo:
Jogo extends JogoFramework{
@Override
public void update(){
….
}
@Override
public void draw(){
….
}
}
DI - Dependency Injection
O programador não deve se preocupar em
criar a estrutura da aplicação, cabendo ao
framework construí-la usando arquivos de
configuração (XML) ou anotações
Exemplo:
class pessoa{
@Inject List<Objetos> listObjetos;
}
DI (exemplo)
Aplicação
ImpressaoService
EmailService
DI (exemplo)
class Aplicacao{
Impressora impressora;
Email email;
void main(String[] args){
impressora = new Impressora(a, b, ?, ?);
email = new Email(?, #, %, …);
impressora.imprime(x);
email.envia(x);
}
DI (exemplo)
class Aplicacao{
@Inject Impressora impressora;
@Inject Email email;
main(){
impressora.imprime(x);
email.envia(x);
}
DI - Container
Container
impressora
email
@Inject
retorna objeto
DI - Tempo de Vida
“Quanto tempo” vive um objeto no container?
● Sempre é criado um novo;
● Enquanto existe uma criação no banco;
● Durante toda a aplicação;
● Enquanto meu personagem está no mesmo
cenário;
DI - Exemplos
● O CDI é a especificação de DI de java
definida pelas JSR-299 e JSR-330
Implementação Foco Limitações
Spring Framework Web
com DI
● Não implementa totalmente o CDI
● Containers de Aplicação não o
suportam nativamente
● Pode ser muita coisa para quem só
deseja usar DI
Guice Somente DI ● Containers de Aplicação não o
suportam
● Pode ser pouca coisa se você quer
algo além de DI
Weld Implementação
de referência
CDI
● Quase ninguém usa
JSF, Spring e Hibernate
O que é JSF?
Framework stateful e orientado a
componentes para camadas view e controller
de aplicações web
Vantagens/Desvantagens
● Poderoso
● Flexível
● Abstração das
tecnologias web
● Facilidade em criar
ferramentas
● Biblioteca de
componentes
● Suporta acessibilidade,
internalização e
multilinguística
● Padrão definido na
industria
● Complexo e as vezes
desnecessário
● Padrão diferente dos
frameworks por ação
(Rails, Struts, …)
● Não aproveita REST
do HTTP
● Somente a versão 1.2
foi estável.
● Por ser stateful, é mais
lento e consome mais
memória
Des-mytifying Java ServeFaces - Ed Burns
Vantagens/Desvantagens
● “Simula” uma
aplicação desktop,
onde existe estado da
View
● Componentes prontos.
Se não há necessidade
de customização. O
desenvolvimento é
acelerado
● Pode ter problemas de
desempenho ao
manter o estado da
View
● Dificuldade de
customização de
componentes
Arquitetura JSF
FacesServlet
Front-Controller
Manager Beans
(Controllers)
XHTML/Facelets
(Views)
Fases JSF Restore
View
Apply
Request
Values
Process
Validations
Update
Model
Values
Invoke
Application
Render
Response
Managed Bean
LoginController
String nome;
String senha;
public void login(String nome, String senha);
Facelets
Escopo
RequestScope
SessionScope
ApplicationScope
ViewScope
O que é Spring?
Spring
“Spring Framework is a Java platform that
provides comprehensive infrastructure support
for developing Java applications. Spring
handles the infrastructure so you can focus on
your application.”
http://docs.spring.io/spring/docs/3.0.x/reference/overview.html
Spring
O que usamos?
● DI
● Controlar Transações e Wrapper do
Hibernate
Spring - Bean
Bean no Spring é um POJO que é carregado
no contexto de aplicação do Spring (container
DI) e terá seu ciclo de vida gerenciado de
acordo com um scopo determinado
● singleton – Return a single bean instance per Spring IoC container
● prototype – Return a new bean instance each time when requested
● request – Return a single bean instance per HTTP request. *
● session – Return a single bean instance per HTTP session. *
● globalSession – Return a single bean instance per global HTTP session. *
Spring - Transaction
O Spring abstrai o conceito de transação
permitindo definir métodos transacionais com a
anotação @Transactional
@Transactional
public void doSomething(){
…
}
HIbernate
Primeiro ORM em java e o mais usado
atualmente
Hibernate
@Entity(name = "conta")
public class Conta implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column
private String nome;
//GETTER E SETTERS
}
Hibernate
obtemContas(){
Session s = getSessionFactory().
getCurrentSession();
return s.createQuery("FROM pessoa").
list();
}
Obrigado!
Dúvidas?
Marcos Côrtes
marcoscortes@id.uff.br

Mais conteúdo relacionado

Mais procurados

JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOLeonardo Sousa
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaFrederico Maia Arantes
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIFelipe Knappe
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_MeloUtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melothalesboss
 
O framework spring
O framework springO framework spring
O framework springBruno Catão
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXjesuinoPower
 
4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overviewqualidatavix
 

Mais procurados (20)

JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_MeloUtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
UtilizandoJSF_no_Desenvolvimento_de_aplicacoes_web_by_Thales_Batista_de_Melo
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
O framework spring
O framework springO framework spring
O framework spring
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Desenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFXDesenvolvimento rápido de aplicações com JEE e JavaFX
Desenvolvimento rápido de aplicações com JEE e JavaFX
 
4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 

Semelhante a Java WEB Frameworks STI

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
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFEmmanuel Neri
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Facescejug
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFBruno Borges
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 

Semelhante a Java WEB Frameworks STI (20)

Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
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
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Django
DjangoDjango
Django
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2Aula parte 1 de JSF 2.2
Aula parte 1 de JSF 2.2
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 

Java WEB Frameworks STI