Desenvolvimento Java EE Usando JSF - Spring Framework e Hibernate

Click here to load reader

  • date post

    25-Oct-2014
  • Category

    Documents

  • view

    70
  • download

    13

Embed Size (px)

Transcript of Desenvolvimento Java EE Usando JSF - Spring Framework e Hibernate

Desenvolvimento Java Enterprise Edition usando JSF + Spring Framework e HibernateUma aplicao Java EE da teoria a pratica por Rodrigo Urubatan Ferreira Jardim

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Sobre o Palestrante

Rodrigo Urubatan - SCJP 1.4 e SCWCD Trabalha com arquitetura de sistemas J2EE e treinamento

Ja desenvolveu projetos utilizando as linguagens Delphi, C++, PHP, ASP, C o l F usi n , L e a th e r, A ssem b l P e rl d o y, , Trabalha com Java/J2EE a 4 anos e com desenvolvimento de sistemas a 9 anosAtualmente colabora com pequenas correes a alguns projetos Open Source como o GUJ2, Lomboz e Veloeclipse e faz parte da coordenao do RSJUG J ministrou palestras em universidades (UCS, ULBRA, UNISC) e diversos eventos (Just Java, FISL, Seminrio do RSJUG, Maratona 4 Java, Infosul) tutoriais para o RSJUG e ja teve um artigo publicado na revista Mundo Java Atualmente trabalha como consultor na AdvancedIT, como gerente de tecnologia e qualidade na Tech Office IT, e ministra cursos e alguns pequenos projetos pela USI Informtica o principal desenvolvedor do projeto Spring-Annotation

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Agendal

Java 5 l Hibernatel l l

Mapeamento Objeto Relacional Configurao Consultas IoC/DI Recursos do Framework Porque usar Conceitos Bsicos Recursos

l

Spring Frameworkl l

l

l

JSFl l

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

HibernateHibernate servio de persistencia e consulta objeto/relacional poderoso e de alta performance. Hibernate permite o desenvolvimento de classes persistentes utilizando um idioma orientado a objetos incluindo associaes, herana, polimorfismo, composio, e colees.

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

HibernateHibernate permite a escrita de consultas no seu idioma proprio e portvel (HQL), bem como em SQL nativo, ou com uma API Orientada a objetos de Criterios e Exemplos.

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Mapeamento Objeto Relacionall Por

que? l Para que serve? l Como fazer? l Hands On!

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Mapeamento O/R: Por que?Desenvolver qualquer tipo de sistemas ja no uma tarefa simples. l Precisar pensar de duas formas diferentes aumenta a complexidade. l Pensar apenas de forma relacional nos faria perder a maior parte das vantagens do Java.l

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Mapeamento O/R: Para que serve?l

l

l

Mapear os objetos que precisam ser persistentes do sistema para a forma mais popular e performatica de armazenamento de dados utilizada hoje. Permite pensar em todo o sistema na forma de objetos, e utilizar o banco de dados apenas como armazenamento de dados. No necessrio conhecer duas linguagens diferentes para escrever um sistema.

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Mapeamento O/R: Como Fazer?Criar um modelo de objetos que seja suficiente para trabalhar com os dados necessrios para a aplicao. l Tomar cuidado para realizar o mapeamento correto, seguindo os conceitos de orientao a objetos. l E vi r d e cri r o b j to s-ta b e l ta a e al

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: O que pode ser mapeadol

Tipos primitivos do java l Tipos wraper l Enums l Classes persistentes l Relacionamentos entre classes l Componentes l Colees

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: Abordagens para o mapeamentol

Anotaesl

l l l l

Anotaes compativeis com a especificao da Java Persistence API (EJB3) Um unico lugar para saber onde as classes sero persistidas Utiliza as informaes de colees genricas Menor quantidade de meta dados para o mesmo resultado Extenses do Hibernate disponiveis onde a especificao de JPA no chegou.

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: Anotaesl l l

ll

ll

l

@Entity @Id @GeneratedValue @Embedded @Embeddable @EmbeddedId @Basic @Column

l l l

ll

ll

@OneToMany @OneToOne @ManyToOne @ManyToMany @MapKey @MappedSupperClass Inheritance

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: EnumeraesDiscriminatorValue l FetchType l GenerationType l InheritanceTypel

CascadeType l EnumType l FlushModeType l LockModeTypel

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: Validao IntegradaCom as classes mapeadas at o momento no temos nenhum tipo de validao l No h campos obrigatrios exceto o ID l Isto aumenta a complexidade do resto do cdigo, obrigando o cdigo da aplicao a tratar isto explicitamente.l

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: Validao Integradal l l l

Hibernate Annotations possui uma extenso de validao Algumas das validaes so refletidas no banco de dados gerado Podem ser utilizadas independente do resto do Hibernate quando desejado Possibilidade de criar validaes costumizadas

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Hands On: Validao Integradal

@Length(min=, max=) l @Max(value=) l @Min(value=) l @NotNull l @Past l @Future l @Email

l

@Pattern(regex="regex p", flag=) l @Range(min=, max=) l @Size(min=, max=) l @AssertFalse l @AssertTrue l @Valid

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Lets Play

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Configuraol

O Hibernate para funcionar precisa de algumas informaesl l l

l

Como se conectar ao banco de dados Qual o banco de dados que estamos utilizando Quais as classes sero persistidas Quais pacotes possuem configuraes

l

E possui diversas configuraes opcionais que veremos a seguir

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Configuraol

Suporte para conexo ao banco de dados l Utilizando um datasource configurado l Utilizando um datasource fornecido programaticamente l Utilizando um datasource fornecido via JNDI l Utilizando uma conexo fornecida manualmente

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Lets Play

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultasl Possibilidadesl HQLl SQL

para consultas

Nativo l Criteria

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultas: HQLLinguagem propria do Hibernate l Similar a SQL, mas com extenses orientadas a objetos l Facilitada a navegao nos relacionamentos por meio de propriedades l Possibilita a utilizao de poucos recursos proprios do banco de dadosl

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultas: SQL NativoAproveita o conhecimento ja adqirido na empresa l Possibilita a utilizao de todo o poder do banco de dados l Nos prende ao banco de dados utilizado l No utiliza todas as vantagens do mapeamento O/Rl

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultas: Criteria APILinguagem totalmente orientada a objetos l Consultas escritas em Java l Facilidade para Query By Example l Facilidade para escrever consultas dinmicas l Evita que o programador cometa alguns tipos de errosl

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultas: Design Pattern DAOOculta do resto da aplicao qual a tecnologia de acesso a dados que esta sendo utilizada. l Concentra em um unico lugar o conhecimento de como transportar um objeto de/para o banco. l Facilita o tratamento de erros do banco de dados em um unico lugar.l

Tech Office Solues em Tecnologia da Informao Ltda [email protected] | www.techoffice.com.br | http://blog.urubatan.com.br

Consultas: Genericsl

Podemos utilizar os generics do Java 5 para escrever um cdigo padro para acesso a dados. l A API do hibernate facilita o trabalho. l A Criteria API nos fornece os recursos neces