22 de 33 BURIFORMAÇÃO – PROGRAMAÇÃO WEB COM JAVA EE 7 BC 61 – PERSISTÊNCIA E AUTOMAÇÃO COM JPA, MAVEN E JUNIT (40h) OBJETIVOS: Apresentar aos nossos alunos conceitos e boas práticas de programação acerca do desenvolvimento da camada de modelo de aplicações JAVA. PRÉ-REQUISITOS: • • • • BC 51 – JAVA PARA INICIANTES; e BC 52 – JAVA AVANÇADO; e BC 54 – PROGRAMAÇÃO JAVA WEB; ou Java, Orientação a Objetos, Collections, JSP, JSTL básico, MVC, patterns DAO e Factory. EMENTA: • Gestão de Dependências: Pensando em dependências do projeto, Procurando bibliotecas na web, Gestão de dependências com Maven, Instalação e configuração do ambiente, Meu 1o Maven Project. • Mapeamento Objeto Relacional: Bancos de dados e Orientação a Objetos, Pouco SQL no código Java, JPA, Hibernate, MySQL, Mapeamentos com anotações, Auto incremento, Criação automática do BD, Transações. • Automação de testes: Por que devo testar o sistema? Mas o que deve ser testado? Testes manuais via log no console, Testes automatizados, Percentual de cobertura de testes, Instalando e configurando o JUnit. • DAOs e outros padrões: Usando EntityManager, EntityManagerFactory e JPAUtil, JPA em DAOs, Queries, Ciclo de vida das entidades, Estados Managed, Transient. Detached e Removed. • Mapeamento de relações: Representação de cardinalidades, Tipos de relações OneToMany e ManyToOne, Mapeamento de Enum e Datas, Persistência de relacionamentos • Consultas avançadas com JPQL: Apresentação da Java Persistence Query Language, Filtros com AND e OR, Retorno de objetos e primitivos, Tipos de retorno, Filtros baseados em relacionamentos • Relacionamento bidirecional: Entendendo a necessidade do mapeamento bidirecional, Mantendo a coerência do modelo com o www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo) 23 de 33 atributo mappedBy, Mapeamento de relações N:N, A marcação @JoinTable, Problemas com LazyInitialization, LazyLoading e o padrão Open EntityManager In View • Consultas Orientadas a Objeto com Criteria: Problemas de concatenação de Strings, Entendendo a API Criteria, Pensando em consultas dinâmicas, Criteria e consultas tipadas • Mantendo a integridade dos modelos: JPA e a definição de constraints de banco de dados, Pensando em validação de campos, Bean Validation, Mensagens de erro personalizadas, Validação em cascata • Outros mapeamentos: Estratégias para o mapeamento 1:1, Mapeamento de Value Object, Trabalhando com @Embeddable e @Embedded, Mapeamento de chaves compostas com @EmbeddedId, Mapeamento de Heranças com @Superclass BC 62 – JAVA WEB COM JSF, PRIMEFACES, CDI E RESTfull (40h) OBJETIVOS: Apresentar ao programador WEB conceitos e componentes que podem facilitar o desenvolvimento de aplicações, além de tornar mais divertido o processo de criação de interfaces ricas e amigáveis para os seus usuários. PRÉ-REQUISITOS: • • • • BC 51 – JAVA PARA INICIANTES; e BC 52 – PROGRAMAÇÃO JAVA AVANÇADO; e BC 54 – PROGRAMAÇÃO JAVA WEB; ou Java, Orientação a Objetos, Collections, JSP, JSTL básico, MVC, patterns DAO e Factory EMENTA: • Fundamentos de web: Entendendo o mundo web, Servidores de Web vsersus Servidores de Aplicação, Arquitetura MVC, Fundamentos de JEE, criação do Maven Project. • Configuração do ambiente: instalação e configuração IDE Eclipse JEE, Servidor de Tomcat 8, MySQL 5.5, Maven 3.3 criação do 1o projeto WEB www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo) 24 de 33 • JavaServer Faces: Fundamentos, HTTP Stateless, configurações do projeto, Páginas XHTML, Formulário de cadastro, Camada de controle com Managed Beans, Bind de componentes, listagem de objetos em uma DataTable, Botões e Links JSF • Ajax nativo e CSS: Requisições assíncronas com AJAX, trabalhando com tags Ajax, Atualização de trechos da tela, Integração com folhas de estilo • Cilco de Vida JSF: Arvore de componentes, armazenamento no cliente ou no servidor, Ciclo de Vida de uma requisição JSF, Pensando em filtros de requisições, PhaseListener, redirecionamento de requisições • Injeção de Dependências com CDI: Diminuindo o alto acoplamento de aplicações web, fundamentos da Injeção de Dependências, implementando CDI com JBoss Weld, @Produces e @Disposes, Gerenciamento de Escopos • RESTfull API: Pensando em integração de sistemas, RESTfull API na prática, dependências do projeto, Trabalhando com webservices no Tomcat usando Jersey, GSON – Um framework para facilitar o parse de estruturas JSON www.buritech.com.br | [email protected] | +55 92 8118-­‐7682 (vivo)