Spring em desenvolvimento Web
Rodney de Lima rud-ney2@hotmail.com Sistemas de Middleware Avançados
IME-USP - 2006/02
Agenda
• Introdução
• Inversão de Controle
• Spring AOP
• Portable Service Abstractions
• Spring Beans, JDBC, EJBs, ...
• Spring 2.0
• Referências
1. Introdução: O que é Spring?
• Spring é um framework leve com inversão de controle e orientado à aspectos.
• "Spring torna o desenvolvimento em J2EE mais fácil e divertido."
• Introduzida por Rod Johnson em "J2EE Design & Development"
1. Introdução: Benefícios
• Container leve elimina a necessidade de código repetitivo, como lookups
• Framework com inversão de controle que resolve automaticamente as dependências entre beans
• Código comum a várias seções, como gerenciamento de transações, são implementados como aspectos.
• Disponibiliza camadas de abstração para tecnologias populares (como Hibernate e JDBC), fáceis de usar
1. Introdução: 'Princípios'
• O código da aplicação não deve depender da API Spring
• Spring não deve competir com boas soluções já existentes, mas deve ser capaz de se integrar (WebSphere)
• Teste de código é uma tarefa crítica e o container não deve interferir neste objetivo
• Spring deve ser fácil e agradável de se utilizar
1. Introdução: Esquema Geral
1. Introdução: Arquitetura e Utilização
• Considerado alternativa/substituto leve aos EJBs
• Não é exclusivo Java (Spring.NET)
• Soluções prontas para problemas típicos:
• JDBC, LDAP, Web Services, ...
• Código do Spring é comprovadamente bem estruturado
• Possivelmente o melhor dentre os frameworks
• Análise usando Structure 101
• 139 pacotes
• Livre de ciclos de dependências
1. Introdução: Os Três Alicerces
• Injeção de Dependências
• Também conhecido como IoC (Inversão de Controle)
• Programação Orientada à Aspectos
• Baseado em injeções em tempo de execução
• Portable Service Abstractions
• Todo o 'resto' do Spring
• ORM, DAO, Web MVC, Web, etc.
• Permite