Globalcode
–
Open4education
Desenvolvimento um aplicativo
completo usando JSF, EJB e padrões
Rodrigo Cândido e Vinny Nunes
Instrutores Globalcode / VOffice
Globalcode
–
Open4education
Agenda

  Objetivo / Motivação

  Domínio, Ferramentas e Opções de Arquitetura

  OA1

  Java Persistence API (JPA)

  JavaServer Faces (JSF)

  OA2

  Enterprise Java Beans (EJB)

  OA3

  Injeção de Dependência (DI)

  Perguntas e Respostas
Globalcode
–
Open4education
Objetivo

  Apresentar 3 opções modernas de arquitetura para aplicações JEE
Globalcode
–
Open4education
Palestrantes

  Rodrigo Cândido

  FORMACAO

  Java desde 19xx

  Entusiasta de tecnologias XXX

  SCJP, SCEA, SCWCD

  AJ, AW, CJ, CW

  Vinny Nunes

  Pós OO, Ciências da Computação e Técnico em Processamento

  Java para web desde 1999

  Entusiasta de tecnologias de apresentação

  SCJP, SCJA, SCWCD

  AJ, AW, CJ, CW
Globalcode
–
Open4education
Motivação

  Simplificar o desenvolvimento:

  Usando menos padrões de projetos

  Usando os recursos do Java 5, em especial anotações e genéricos

  Usando as especificações JCP nas suas versões mais recentes

  Usando novos padrões como IoC e DI

  Encorajar o uso das tecnologias EE

  JSF

  EJB
Globalcode
–
Open4education
Enquete: tecnologias usadas em produção?

  Apresentação

  Quem utiliza JSF em produção?

  Quem pretende usar?

  Quem utiliza Facelets em produção?

  Richfaces? IceFaces? Outro? Qual?

  Struts? Flex? JavaFX? SilverLight? Outro? Qual?

  Negócio e Integração

  EJB 2 ? EJB 3 ? Spring ?

  JPA? Com Hibernate? Com TopLink? Outro? Qual?

  JBoss? Glassfish? Tomcat? Jetty? WebSphere? Outros?
Globalcode
–
Open4education
Domínio: Quick Post

  Artigo (id, título, autor, conteúdo, publicação, criação)

  Categoria (id, nome)

  Rótulo (id, nome)
Globalcode
–
Open4education
Ferramentas utilizadas

  eclipse 3.x – CPL, EPL (http://www.eclipse.org/)

  + jboss tools 3.x (http://www.jboss.org/tools)

  netbeans 6.x – CDDL, GPL (http://www.netbeans.org/)

  + Facelets support (https://nbfaceletssupport.dev.java.net/)

  mysql 5.x - GPL (http://www.mysql.com)

  + mysql connector/j (http://dev.mysql.com/downloads/#connector-j)

  + mysql tools (http://dev.mysql.com/downloads/gui-tools/5.0.html)
Globalcode
–
Open4education
Opções de Arquitetura JEE
# JSF++ JPA Padrões EJB DI/IoC Containers
OA1 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
. DAO
. Factory
. Service Locator
. Business
Object
Não Não Tomcat
Jetty
...
OA2 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
. Service Locator 3.0 Não JBoss
Glassfish
WebSphere
...
OA3 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
- 3.0 Sim JBoss
Glassfish
WebSphere
...
Globalcode
–
Open4education
Agenda

  Objetivo / Motivação

  Estudo de Caso

  Java Persistence API (JPA)

  JavaServer Faces (JSF)

  Enterprise Java Beans (EJB)

  Injeção de Dependência (DI)

  Perguntas e Respostas
Globalcode
–
Open4education
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
Globalcode
–
Open4education
Java Persistence API
Globalcode
–
Open4education
Java Persistence API

  Entidades JPA
Globalcode
–
Open4education
Java Persistence API

  EntityManager (javax.persistence)

  Gerencia o ciclo de vida das entidades
(B) find / query
(C) persist
(D) clear / serialização
(E) merge
(F) remove
Globalcode
–
Open4education
Java Persistence API

  PersistenceContext

  Conjunto de objetos “managed” associados a um
EntityManager
EntityManager PersistenceContext
obj1 obj4obj2 obj3
obj5
MANAGED MANAGED MANAGED MANAGED
NEW / DETACHED
Globalcode
–
Open4education
Java Persistence API

  Persistence Unit

  Uma unidade de persistência define um contexto de
funcionamento para os EntityManagers
Globalcode
–
Open4education
Java Persistence API

  Exemplo de utilização de JPA
Globalcode
–
Open4education
JPA: instalação e configuração

  bibliotecas
•  persistence-api-xx.jar
•  Bibliotecas do provider
•  Hibernate
•  TopLink
•  OpenJPA
Globalcode
–
Open4education
Java Persistence API: demonstração

  eclipse 3.x

  netbeans 6.x opcional
Globalcode
–
Open4education
Agenda

  Objetivo / Motivação

  Estudo de Caso

  Java Persistence API (JPA)

  JavaServer Faces (JSF)

  Enterprise Java Beans (EJB)

  Injeção de Dependência (DI)

  Perguntas e Respostas
Globalcode
–
Open4education
JSF: o que é?

  Java Server Faces

  Framework MVC proposto em 2001

  JSR 127 (1.0 e 1.1, 2001), JSR 252 (1.2, 2004), JSR 314 (2.0,2007)

  Padronizou o desenvolvimento de interface de usuário web

  Definido por grupo de especialistas composto de empresas e pessoas
físicas

  Suportado pelos containers homologados para JEE 5 ou superior

  Baseado na tecnologia Servlets

  Ed Burns, Roger Kitain - Sun
http://java.sun.com/javaee/javaserverfaces/
Globalcode
–
Open4education
JSF: por que usar?

  Componentes ao invés de ações

  Renderizações além do HTML

  Conversores, validadores, eventos

  Ciclo de vida e árvore de componentes

  Binding e Expression Language

  Implementa os padrões pra você: Wrapper, Front
Controller, MVC, DI, …

  Resources, Ajax, MegaListeners, Anotações, Composite
components, Bean validation, Bookmarking, new scopes,
new tags, … (2.x)
Globalcode
–
Open4education
JSF: por que usar?

  Maduro: desde 2001! Já tem a 2.0 desde julho!

  Incorpora boas idéias de outros frameworks e de extensões
JSF: Tapestry, Struts, WebWork, Richfaces, IceFaces

  Preparado para ser entendido e estendido

  Preparado para ferramentas de desenvolvimento
Globalcode
–
Open4education
JSF: principais componentes
J2EE Web Container J2EE EJB
Container
Controller ModelView
Servlet JavaBeansJava
Server
Pages
Custom
Tag
EJB
javax.faces
JSF e J2EE
Globalcode
–
Open4education
JSF: principais componentesPáginaJSFfaces-config.xml
ManagedBean
Globalcode
–
Open4education
JSF: instalação e configuração

  bibliotecas
JARs necessários:
•  jsf-api.jar
•  jsf-ri.jar
•  jstl.jar
•  standard.jar
•  commons-beanutils.jar
•  commons-digester.jar
•  commons-collections.jar
•  commons-logging.jar
Globalcode
–
Open4education
JSF: instalação e configuração

  arquivos de configuração
pom.xml:
…
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf.version}</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf.version}</version>
</dependency>
…
Globalcode
–
Open4education
JSF: instalação e configuração

  arquivos de configuração
web.xml:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</
servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Globalcode
–
Open4education

  arquivos de configuração
JSF: instalação e configuração
faces-config.xml:
<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://
java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/
javaee http://java.sun.com/xml/ns/javaee/web-
facesconfig_1_2.xsd">
</faces-config>
Globalcode
–
Open4education
JSF: instalação e configuração

  eclipse 3.x

  netbeans 6.x
Globalcode
–
Open4education
JSF: exemplos

  Lista de artigos publicados eclipse 3.x
Globalcode
–
Open4education
Facelets: o que é?

  JSF View Definition Framework

  Proposto em 2005

  Tecnologia focada na criação de árvores de componente
JSF

  VDL alternativa

  Subprojeto do JSF

  Jacob Hookom - Sun
https://facelets.dev.java.net/
Globalcode
–
Open4education
Facelets: por que usar?

  Templates

  XHTML ao invés de JSP

  Atributo jsfc

  Rápido para renderizar

  Melhor para identificar expressões EL erradas

  Também é padrão (JSR 314, 2.x)

  Turbinado pela biblioteca composite (2.x)
Globalcode
–
Open4education
Controller ModelView
Servlet JavaBeansJava
Server
Pages
Custom
Tag
EJB
javax.faces
Facelets: principais componentes
J2EE Web Container J2EE EJB
Container
com.sun.facelets
- Composite tags: Composition and Component,
Fragment and Decorate
- Development tags: Debug
- Iteration tags: Repeat
- Template tags: Define, Insert, Param, Remove
Globalcode
–
Open4education
Facelets: principais componentes
cliente
Globalcode
–
Open4education
Facelets: principais componentes
template
Globalcode
–
Open4education
Facelets: instalação e configuração
•  jsf-facelets.jar (1.x) •  jsf-api.jar
•  jsf-ri.jar
•  jstl.jar
•  standard.jar
•  commons-beansutils.jar
•  commons-digester.jar
•  commons-collections.jar
•  commons-logging.jar
Globalcode
–
Open4education
Facelets: instalação e configuração

  arquivos de configuração
pom.xml:
…
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>${facelets.version}</version>
</dependency>
...
Globalcode
–
Open4education
Facelets: instalação e configuração

  arquivos de configuração
web.xml:
…
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
...
Globalcode
–
Open4education
Facelets: instalação e configuração

  arquivos de configuração
faces-config.xml:
<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/
javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-
handler>
</application>
</faces-config>
Globalcode
–
Open4education
Facelets: instalação e configuração

  eclipse 3.x

  netbeans 6.x
Globalcode
–
Open4education
Facelets: exemplos

  Lista de artigos publicados com html reaproveitado
e template
eclipse 3.x
Globalcode
–
Open4education
Richfaces: o que é?

  Biblioteca de componentes

  Criada pela Exadel em 2006

  Mantida pela Jboss desde 2007

  Última versão estável: 3.3.1 em 18/04/2009

  Alexander Smirnov – Exadel

  Max Katz – Exadel
http://www.jboss.org/richfaces
Globalcode
–
Open4education
Richfaces: por que usar?

  Suporte a Ajax

  Aproximadamente 100 componentes prontos

  Component Development Kit

  Skins prontos e possibilidade de customização

  Resources

  Facilidades para testes

  Cross browser

  Comunidade ativa

  Integração com jQuery, Prototype e Scriptaculous
Globalcode
–
Open4education
Richfaces: principais componentes
J2EE Web Container J2EE EJB
Container
org.richfaces
rich
-  Calendar
-  Suggestion Box
-  Enhanced Data table
-  Combo Box
-  Menu
-  Tree view
-  Panel
-  Layout
-  Modal Panel
-  Validators
-  Drag and Drop
-  Progress Bar
-  Tabs
-  …
a4j
-  Status
-  Support
-  CommandButton
-  CommandLink
-  Poll
-  Push
- Output Panel
…
Globalcode
–
Open4education
Richfaces: principais componentes
Cliente
<xmlns:a4j="http://richfaces.org/a4j">
<xmlns:rich="http://richfaces.org/rich">
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
Globalcode
–
Open4education
Richfaces: instalação e configuração

  bibliotecas
•  richfaces-api-xx.GA.jar
•  richfaces-impl-xx.GA.jar
•  richfaces-ui-xx.GAjar
•  jsf-api.jar
•  jsf-ri.jar
•  jstl.jar
•  standard.jar
•  commons-beansutils.jar
•  commons-digester.jar
•  commons-collections.jar
•  commons-logging.jar
Globalcode
–
Open4education
Richfaces: instalação e configuração

  arquivos de configuração – pom.xml
...
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>${richfaces.version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl</artifactId>
<version>${richfaces.version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui</artifactId>
<version>${richfaces.version}</version>
</dependency>
Globalcode
–
Open4education
Richfaces: instalação e configuração

  arquivos de configuração – web.xml
...
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
...
Globalcode
–
Open4education
Richfaces: instalação e configuração

  arquivos de configuração – faces-config.xml
<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/
ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-
facesconfig_1_2.xsd">
</faces-config>
Globalcode
–
Open4education
Richfaces: exemplos

  Lista de artigos publicados com data e categoria.
Filtro, ordenação, panel.
eclipse 3.x
Globalcode
–
Open4education
Richfaces: instalação e configuração

  eclipse 3.x

  netbeans 6.x
Globalcode
–
Open4education

  Demonstração
OA1
# JSF++ JPA Padrões EJB DI/IoC Containers
OA1 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
. DAO
. Factory
. Service Locator
. Business Object
Não Não Tomcat
Jetty
...
OA2 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
. Service Locator 3.0 Não JBoss
Glassfish
WebSphere
...
OA3 . 1.2
. Facelets
. Richfaces
. 1.0
. Hibernate
- 3.0 Sim JBoss
Glassfish
WebSphere
...
eclipse 3.x
Globalcode
–
Open4education
OA1

  Vantagens

  Basta um servidor EE com suporte a servlets

  Mais rápido para codificar e para testar

  Mais fácil para aprender

  Desvantagens

  Acesso de clientes desktop não é tão prático

  Arquivo de expedição monolítico (.war)

  Poucas facilidades de integração com outras tecnologias
EE
Globalcode
–
Open4education
Agenda

  Objetivo / Motivação

  Estudo de Caso

  Java Persistence API (JPA)

  JavaServer Faces (JSF)

  Enterprise Java Beans (EJB)

  Injeção de Dependência (DI)

  Perguntas e Respostas
Globalcode
–
Open4education
Enterprise Java Beans (EJB)

  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;
Globalcode
–
Open4education
Enterprise Java Beans (EJB)
EJB
Session Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EE
Rede Local
Componentes Negócio Compartilhados
Globalcode
–
Open4education
Enterprise Java Beans (EJB)
EJB
Session Bean
Segurança
ControleTransacional
Escalabilidade
Queues
Topics
Data
Sources
Environment
Entries
EJB
Infra Estrutura do Container
Globalcode
–
Open4education

  Tipos de EJB:

  Session Bean

  Representa um processo de negócio

  Message-Driven Bean

  Trabalha de forma assíncrona

  Entity Bean

  Representa um objeto persistente

  Definido pela especificação JPA
Enterprise Java Beans (EJB)
Globalcode
–
Open4education

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

  Pode ser do tipo Stateless ou Stateful;

  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
Globalcode
–
Open4education
Session Bean

  Stateless (sem estado)
Período que uma instancia do
EJB fica “preso” a um cliente
Globalcode
–
Open4education
Session Bean

  Stateful (com estado)
Período que uma
instancia do EJB fica
“preso” a um cliente
Globalcode
–
Open4education
Session Bean

  Stateless (sem estado)
Globalcode
–
Open4education
Session Bean

  Clientes acessam o Session Bean através de uma interface
Java simples (POJI);

  Métodos (serviços) são publicados através desta interface;

  A interface deve ser implementada pela classe do Bean;

  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).
Globalcode
–
Open4education
Session Bean

  Local Interface

  Remote Interface
Globalcode
–
Open4education
OA2

  Demonstração eclipse 3.x
# JSF++ JPA Padrões EJB DI/IoC Containers
OA1 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
. DAO
. Factory
. Service Locator
. Business Object
Não Não Tomcat
Jetty
...
OA2 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
. Service Locator 3.0 Não JBoss
Glassfish
WebSphere
...
OA3 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
- 3.0 Sim JBoss
Glassfish
WebSphere
...
Globalcode
–
Open4education
OA2

  Vantagens

  Arquitetura mais robusta (melhor escalabilidade)

  Infra-estrutura do servidor EE

  Regras de negócio centralizadas

  Ampla diversidade de clientes (CORBA, RMI, etc)

  Desvantagens

  Maior custo operacional

  Maior complexidade na implementação

  Maior dificuldade de suporte e manuteção
Globalcode
–
Open4education
Agenda

  Objetivo / Motivação

  Estudo de Caso

  Java Persistence API (JPA)

  JavaServer Faces (JSF)

  Enterprise Java Beans (EJB)

  Injeção de Dependência (DI)

  Perguntas e Respostas
Globalcode
–
Open4education
Injeção de Dependência

  Mecanismo de “injeção” de recursos necessários a
um componente de forma automática

  Sem a presença de instruções explícitas para acessar o
recurso

  Exemplo:

  O componente de negócios A depende do componente
de negócios B e do pool de conexões C.
A
B
C
Globalcode
–
Open4education
Injeção de Dependência

  Sem injeção de dependência:

  Código fonte do componente A contém instruções para
“buscar” o componente B e o recurso C.
A
B
C
Serviço de Nomes
“ejb/componenteB”
“jdbc/dataSourceC”
lookups
Globalcode
–
Open4education
Injeção de Dependência

  Com injeção de dependência

  Código do componente A não busca recursos e outros
componentes

  Devemos declarar as dependências de componentes e
recursos nos atributos ou métodos setters do
componente A

  Container (Java EE) interpreta as dependências
declaradas no componente A e “injeta” os recursos e
componentes necessários
Globalcode
–
Open4education
Injeção de Dependência
A
B
C
Serviço de Nomes
“ejb/componenteB”
“jdbc/dataSourceC”
injeção
class ComponenteA {
@EJB(name=“ejb/componenteB”) InterfaceB b;
@Resource(name=“jdbc/dataSourceC”) DataSource c;
}
Globalcode
–
Open4education
Injeção de Dependência

  Quem pode receber injeção ?

  EJB, Interceptor

  Servlet, Filter, *Listener, JSP Tag Handler

  JSF Managed Beans

  Endpoints JAX-WS e Handlers

  O que pode ser injetado ?

  Referências a EJBs e a Web Services

  DataSource JDBC

  Destination e ConnectionFactory JMS

  UserTransaction

  EntityManager (JPA)
Globalcode
–
Open4education
Injeção de Dependência

  Exemplo de Utilização
Globalcode
–
Open4education
OA3

  Demonstração eclipse 3.x
# JSF++ JPA Padrões EJB DI/IoC Containers
OA1 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
. DAO
. Factory
. Service Locator
. Business Object
Não Não Tomcat
Jetty
...
OA2 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
. Service Locator 3.0 Não JBoss
Glassfish
WebSphere
...
OA3 . 1.2
. Facelets
. Richfaces
. 1.0
.
Hibernate
- 3.0 Sim JBoss
Glassfish
WebSphere
...
Globalcode
–
Open4education
OA3

  Vantagens

  Configuração facilitada

  Diminuição na quantidade de padrões de projeto
utilizados na aplicação

  Maior produtividade

  Facilidade de manuteção

  Desvantagens

  Suporte incompleto IoC (será corrigido no Java EE 6)

  Incompatibiliade para escalabilidade

  Somente para aplicações Java EE
Globalcode
–
Open4education
Outras especificações usadas junto

  JSF

  + Bean Validation

  + Context and Dependency Injection

  EJB

  + JMS

  + JTA

  + WS

  + JNDI

  + JAAS
Globalcode
–
Open4education
Veja também ...

  JSF

  + Scrum Toys no Netbeans 6.8

  + SuperCRUD

  + IceFaces

  + MyFaces

  + Exadel Flamingo

  JME

  + Cosmo

  + Floggy
Globalcode
–
Open4education
Faça você mesmo!

  Baixar os 3 projetos demo

  Configurar no Eclipse ou no Netbeans

  Codificar CRUDS para

  Autor

  Rótulo

  Categoria

  Codificar Login programático

  Usar componente de menu

  Usar componente para Drag and drop

  Usar componentes de calendário e numérico
Globalcode
–
Open4education
Perguntas e Respostas
?
Globalcode
–
Open4education
Agradecidos pela presença!

Mais conteúdo relacionado

PDF
Introducao EJB 3
PDF
Apostila Java Web com JSF, JPA e Primefaces
PPTX
Curso jsf
ODP
JSF e outras tecnologias Java Web - IMES.java
PDF
Dicas e truques sobre performance em JavaEE, JPA e JSF
PDF
Apresentação Java Web - Jsf+Hibernate
PPS
ApresentaçãO Ejb (Enterprise Java Beans)
Introducao EJB 3
Apostila Java Web com JSF, JPA e Primefaces
Curso jsf
JSF e outras tecnologias Java Web - IMES.java
Dicas e truques sobre performance em JavaEE, JPA e JSF
Apresentação Java Web - Jsf+Hibernate
ApresentaçãO Ejb (Enterprise Java Beans)

Mais procurados (20)

PDF
GlassFish, Maven, Cloud e o futuro do Java EE
PDF
Construindo aplicações web java com netbeans
PPTX
Jsf com hibernate, spring security e maven
PDF
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
PPTX
Introdução a jsf
PDF
Tutorial EJB 3.0 (2009)
PPTX
Apresentação JSF
ZIP
Visão Geral de EJB 3.0
PPT
Enterprise JavaBeans simples e descomplicado, na prática
PPT
JavaServer Faces Produtividade em Desenvolvimento
PPT
Anatomia do JSF, JavaServer Faces
PDF
JSF com Primefaces
PPT
Desenvolvimento web em java com JSP e Servlets
PDF
Java 8 - A Evolução da Linguagem
PDF
Java Web - MVC básico com JSP e Servlets
PDF
Tutorial Java EE
PDF
JSF - JavaServer Faces
PDF
Java Web 1 Introducao
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PDF
Bancos de dados e jdbc java para desenvolvimento web
GlassFish, Maven, Cloud e o futuro do Java EE
Construindo aplicações web java com netbeans
Jsf com hibernate, spring security e maven
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Introdução a jsf
Tutorial EJB 3.0 (2009)
Apresentação JSF
Visão Geral de EJB 3.0
Enterprise JavaBeans simples e descomplicado, na prática
JavaServer Faces Produtividade em Desenvolvimento
Anatomia do JSF, JavaServer Faces
JSF com Primefaces
Desenvolvimento web em java com JSP e Servlets
Java 8 - A Evolução da Linguagem
Java Web - MVC básico com JSP e Servlets
Tutorial Java EE
JSF - JavaServer Faces
Java Web 1 Introducao
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Bancos de dados e jdbc java para desenvolvimento web
Anúncio

Semelhante a MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões (20)

PPT
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
ODP
TDC 2012 - JDF
PDF
JSF 2.0: Uma Evolução nas Interfaces Web com Java
PDF
JSF 2.0 e ScrumToys
PDF
JSF 2.0 e ScrumToys
PDF
JSF 2 Components JustJava2011
PDF
MC - Java Enterprise Edition 6 (Java EE)
PDF
Spring 3: Uma Plataforma além do Framework
PPT
Java Seminar
PPT
PDF
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
PDF
JavaEE 7, na era do cloud computing
PDF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
PDF
TDC2010 - Turbinando sua Aplicação com CDI
PDF
Introducao Spring ROO
PPTX
WildFly Avançado - TDC Floripa 2015
PDF
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
PDF
Spring Roo
PPT
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
PPT
Google AppEngine and JEE
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC 2012 - JDF
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
JSF 2 Components JustJava2011
MC - Java Enterprise Edition 6 (Java EE)
Spring 3: Uma Plataforma além do Framework
Java Seminar
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JavaEE 7, na era do cloud computing
Dicas e Truques sobre Performance em Java EE, JPA e JSF
TDC2010 - Turbinando sua Aplicação com CDI
Introducao Spring ROO
WildFly Avançado - TDC Floripa 2015
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
Spring Roo
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
Google AppEngine and JEE
Anúncio

Mais de Rodrigo Cândido da Silva (20)

PDF
Java 9, 10 e ... 11
PDF
Cloud Native Java EE
PDF
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
PDF
Protecting Java Microservices: Best Practices and Strategies
PDF
As novidades da nova versão do Java 9
PDF
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
PDF
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
PDF
Workshop Microservices - Construindo APIs RESTful com Spring Boot
PDF
Workshop Microservices - Arquitetura Microservices
PDF
GUJavaSC - Protegendo Microservices em Java
PDF
TDC Floripa 2017 - Criando Microservices Reativos com Java
PDF
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
PDF
GUJavaSC - Criando Micro-serviços Reativos com Java
PDF
JavaOne 2016 - Reactive Microservices with Java and Java EE
PDF
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
PDF
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
PDF
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
PDF
GUJavaSC - Combinando AngularJS com Java EE
PDF
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
PDF
QCon 2015 - Combinando AngularJS com Java EE
Java 9, 10 e ... 11
Cloud Native Java EE
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Protecting Java Microservices: Best Practices and Strategies
As novidades da nova versão do Java 9
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Arquitetura Microservices
GUJavaSC - Protegendo Microservices em Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Criando Micro-serviços Reativos com Java
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
GUJavaSC - Combinando AngularJS com Java EE
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon 2015 - Combinando AngularJS com Java EE

Último (19)

PDF
Banco de Dados 2atualização de Banco de d
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PDF
Jira Software projetos completos com scrum
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Banco de Dados 2atualização de Banco de d
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Jira Software projetos completos com scrum
Analise Estatica de Compiladores para criar uma nova LP
Conceitos básicos de Redes Neurais Artificiais
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Aula de Engenharia de Software principais caracteristicas
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
SEMINÁRIO DE IHC - A interface Homem-Máquina
Tipos de servidor em redes de computador.pptx
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Processamento da remessa no SAP ERP, SCM610 Col15
ccursoammaiacursoammaiacursoammaia123456
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Proposta de Implementação de uma Rede de Computador Cabeada.pptx

MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões