FJ-27 - Spring Framework
Recentemente a quantidade de ofertas de empregos online relacionadas a Spring ultrapassou na quantidade relacionada a EJB (fonte). Apesar do EJB3 ter corrigido uma série de problemas das edições anteriores, seu mecanismo de injeção de dependências ainda é considerado muito menos poderoso que o do Spring, o que faz muita gente ainda preferir o Spring que a plataforma Java EE 5. Algumas pessoas tentam unir o melhor dos dois mundos, utilizando EJB3 com Spring. Tanto isso é verdade que no mesmo link é possível ver que a quantidade de empregos que pedem Spring e EJB tem aumentado consideravelmente.
O curso possui 20h de duração, trabalhando tanto os conceitos e padrões básicos como questões avançadas de configurações e extensibilidade do Spring Framework, alguns assuntos abordados: inversão de controle, programação orientada a aspectos, desenvolvimento baseado em pojo's, container de inversão de controle, integração com tecnologias de persistência como JDBC e Hibernate, testes unitários com o Spring, configuração via anotações, integração com JSF.
Informações
Carga Horária: 20 horas aula
Pré-requisitos: Curso FJ-11 ou: linguagem Java, variáveis primitivas e orientação a objetos,
tratamento de erro, conhecimentos fundamentais de Java SE, entrada e saída, coleções, básico de multi-threading em Java.
Conhecimentos de JDBC, Hibernate, JSP e JSF desejáveis.
Conteúdo detalhado do FJ-27
Como aprender Java
- Falando em Java
- O curso
- Indicação de bibliografia extra
Inversão de Controle
- A necessidade
- A solução
- Invertendo o Controle
Criando nosso modelo - Controle de Tarefas
- Criando o projeto no Eclipse
- O sistema de controle de tarefas
- Exercícios: Novo projeto no Eclipse
O princípio de Hollywood
- Relacionamento entre objetos
- Instanciação direta
- Registry
- Injeção de Dependência
- Para saber mais: Inversion Of Control
Spring Framework
- O que é?
- Arquitetura do Spring
- Introdução aos beans do Spring
- BeanFactory o container
- Configurando o Spring
- Iniciando o container
- Exercícios: Projeto com Spring IoC
- Injetando as Dependências
Preparando os testes
- Introdução aos testes unitários
- Testes unitários na prática
- JUnit
- Migrando nosso teste para o JUnit
- Testes unitários com Spring
- Exercícios: Testes unitários com Spring
Spring Framework e Hibernate
- Hibernate
- Baixando na internet
- Anotações, EJB3 e Persistence API
- Mapeando a classe Projeto
- Exercícios: Colocando suporte ao Hibernate
- Integrando o Hibernate ao Spring
- Exercícios: Spring-Hibernate
- Para saber mais: hibernate.cfg.xml
- Data Access Object
- HibernateTemplate
- HibernateDAOSupport
- Registrando o DAO no Spring
- Exercícios: DAO
- Amarrando as dependências (wiring)
- Exercícios: Wiring do DAO
- Exercícios opcionais - Datasource
- Exercícios opcionais - Propriedades do Hibernate
- Exercícios opcionais - DAO com JDBC
Spring Avançado
- Configuração via anotações
- Exercícios: Habilitando suporte a anotações
- Auto-detectando os componentes
- Nomeando nossos componentes
- Exercícios: Anotando as classes
- Amarrando as dependências
- @Qualifier
- Exercícios: Wiring
- Exercícios opcionais
- Exercícios opcionais
- Exercícios opcionais
Escopos dos Beans
- Diferentes escopos
- Escopo Singleton
- Escopo Prototype
- Outros escopos: Request, Session, Global Session
- Configuração inicial
- Configurando os escopos
- Exercícios: Escopos
AOP
- Introdução a Programação Orientada a Aspectos
- AOP na prática
- Elementos de um Aspecto
- AOP com Spring
- AOP no Spring com @AspectJ-style
- Exercícios
- Definindo Pointcuts e Advices
- Exercícios
- Outros Advices
- Para saber mais: Combinando Pointcuts
- Para saber mais: @Around
- Exercícios Opcionais
- Para Saber Mais: Configuração via XML
- Exercícios Opcionais
Gerenciamento de Transações
- Introdução
- Gerenciamento de transações declarativo
- Controle de transações através de anotações
- Configurando o suporte a transações
- Exercícios
- Gerenciamento de transações declarativo com xml
- Exercícios opcionais
- Gerenciamento de transações de maneira programática
- Exercícios opcionais
JavaServer Faces e Spring
- JavaServer Faces
- Configurando o Spring em uma aplicação Web
- Exercícios
- Integrando JavaServer Faces com Spring
- Exercícios
- Registrando o managed-bean
- Amarrando as dependências
- Exercícios
- Definindo os escopo do managed-beans
- Exercícios
- Para saber mais: FacesContextUtils
- Exercícios opcional
Spring na Web com SpringMVC
- O que é o SpringMVC
- Criando Projeto Web com Spring
- Configurando a DispatcherServlet
- Os Controllers
- Exercício opcional
- ViewResolvers
- Listagem de Projetos com DAO injetado
- Listando no JSP com JSTL
- Exercícios: Lista Projetos
- Para saber mais: Resumo de outros controllers
- Usando anotações no 2.5
- Exercícios: lista
- Adiciona Projeto
- Exercícios: Adiciona
- Removendo Projetos
- Exercícios: Remove
- Exercícios opcionais
- Para Saber Mais - Integração com Struts
Outras Tecnologias
- Enviando E-mail com Spring
- Exercício: Spring Mail
- Exercício opcional: Email como Aspecto
- Integração com JMS
- Exercício: Integração com JMS
- Spring Integration
- Exercício: Spring Integration
- Polling
- Exercício opcional: Polling
- Spring Security
- Exercício: Spring Security numa aplicação Web
- Autorização com Anotações
- Exercício opcional
Apêndice A - Outros Containers e futuro do Spring
- Pico Container
- Guice
- EJB3
- Futuro do Spring
Apendice D - Maven
- Introdução
- Criando um novo projeto
- Testando seu projeto
- Exercícios opcionais
- Eclipse e outras IDEs
- Exercícios opcionais
Apêndice C - Spring WebFlow
- O que é um fluxo
- Exercícios: Preparando o projeto para o WebFlow
- Exercícios: Fazendo um fluxo para wizard de um projeto
- Exercício opcional: O botão back e mais do xml do Flow
