O documento descreve o framework Spring, incluindo sua integração com Java EE e outros frameworks. Apresenta a suíte de produtos Spring, como Spring Security e Spring Web Services. Também discute a plataforma SpringSource Application Platform em desenvolvimento.
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
TDC 2008 Spring Framework
1. Spring: Um suite de novas opções
para Java EE
Alberto J Lemos (Dr. Spock)
Instrutor Globalcode
1 Globalcode – Open4Education
2. Agenda
> Sobre o Spring Framework
> Escopo de integração com Java EE e outros
frameworks
> Sobre o Spring portfolio: Um suite de produtos
> Sobre o SpringSource Application Platform
2 Globalcode – Open4Education
3. Agenda
> Sobre o Spring Framework
> Escopo de integração com Java EE e outros
frameworks
> Sobre o Spring portfolio: Um suite de produtos
> Sobre o SpringSource Application Platform
3 Globalcode – Open4Education
4. O que é Spring Framework
> Um framework de código aberto e uso livre, sob
licença Apache, criado por Rod Johnson;
> Implementa um contêiner de injeção de
dependências (DI) e inversão de controle (IoC);
> Um framework para programação orientada a
aspectos (AOP);
> Um framework para integração de aplicações
com serviços Java EE;
> Um framework para integração com outros
frameworks que implementam serviços
enterprise.
4 Globalcode – Open4Education
5. O que o Spring não é!
> Não é uma tecnologia padrão mantida pelo JCP;
> Não é um concorrente da plataforma Java EE;
> Não é uma nova tecnologia;
> Não é a reinvenção da roda!
5 Globalcode – Open4Education
6. Para o que serve?
> Promover boas práticas de desenvolvimento;
> Promover testabilidade;
> Garantir que o código seja flexível para substituir
tecnologias de maneira transparente;
> Utilizar em aplicativos desktop algumas
facilidades do mundo corporativo;
> Desenvolvimento através de um modelo de
componentização baseado em classes Java
simples (POJO).
6 Globalcode – Open4Education
7. Para o que não serve?
> Tornar um código existente em um código bem
estruturado;
> Re-implementar recursos;
> Garantir a qualidade do código;
7 Globalcode – Open4Education
8. Agenda
> Sobre o Spring Framework
> Escopo de integração com Java EE e outros
frameworks
> Sobre o Spring portfolio: Um suite de produtos
> Sobre o SpringSource Application Platform
8 Globalcode – Open4Education
9. Spring Framework
> Disponível no arquivo spring.jar
9 Globalcode – Open4Education
10. Spring Framework
> Disponível no arquivo spring.jar
Core: Implementa o
contêiner IoC;
10 Globalcode – Open4Education
11. Spring Framework
> Disponível no arquivo spring.jar
Web: Recursos para implementação de
aplicações Web: integração com
frameworks MVC, implementação própria
de MVC e integração com tecnologias de
visualização;
11 Globalcode – Open4Education
12. Spring Framework
> Disponível no arquivo spring.jar
DAO: Classes utilitárias para
desenvolvimento de DAO's com JDBC e
gerenciamento de transações;
12 Globalcode – Open4Education
13. Spring Framework
> Disponível no arquivo spring.jar
AOP: Disponibiliza o conceito de
aspectos via AOP Alliance e AspectJ
para integrar os POJO's com os
serviços enterprise;
13 Globalcode – Open4Education
14. Spring Framework
> Disponível no arquivo spring.jar
ORM: Implementa o suporte para
integração com frameworks de
mapeamento objeto/relacional.
14 Globalcode – Open4Education
15. Spring Framework
> Disponível no arquivo spring.jar
Java EE: Classes utilitárias para
integração com serviços Java EE;
15 Globalcode – Open4Education
16. Spring Framework
> Disponível no arquivo spring.jar
Remoting: Expõe os métodos
dos POJO's para invocação
remota;
16 Globalcode – Open4Education
17. Java EE e Spring
> O framework promove o uso dos serviços Java
EE em componentes desenvolvidos como POJO
e sem EJB's;
> Serviços usados: JDBC, JPA, JTA, JMS, JCA,
JMX, JavaMail e JNDI;
> Anotações Java EE suportadas:
17 Globalcode – Open4Education
18. Java EE e Spring
> Permite a configuração e invocação de EJB's (2.1
e 3) como beans no contexto Spring;
> Permite expor os componentes como Web
Services através de JAX-WS (com anotações
@WebService e @WebMethod);
> Integra com serviços Java EE implementados por
servidores de aplicações ou por frameworks
externos (Ex.: ActiveMQ, ObjectWeb JTOM,
commons-dbcp, etc).
18 Globalcode – Open4Education
19. Agenda
> Sobre o Spring Framework
> Escopo de integração com Java EE e outros
frameworks
> Sobre o Spring portfolio: Um suite de produtos
> Sobre o SpringSource Application Platform
19 Globalcode – Open4Education
20. Spring Portfolio
> Composto por diversos projetos que
complementam o Spring Framework;
> Projetos que utilizam as mesmas boas práticas
sugeridas pelo Spring;
> Alguns recursos disponibilizados: Segurança,
integração com outros frameworks, processos
batch, OSGi e ferramentas de desenvolvimento;
> Alguns projetos estão consolidados e maduros;
> Outros projetos estão em desenvolvimento
(milestone ou 1.0.0).
20 Globalcode – Open4Education
21. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
21 Globalcode – Open4Education
22. Spring Portfolio
> Um suite de produtos para aplicações baseadas
Spring Security: Segurança
no Spring. declarativa via XML ou anotações com
suporte a AOP e integração com
tecnologias de segurança: JAAS,
LDAP, DAO, OpenID, CAS, X509,
Windows NTLM;
22 Globalcode – Open4Education
23. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Web Service: Suporte a Web
Services a partir da definição do XML
Schema e WSDL (Data Contract e
Service Contract);
23 Globalcode – Open4Education
24. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Web Flow: Suporte ao
controle de fluxo de navegação Web,
integração com JSF, conversação e
Ajax;
24 Globalcode – Open4Education
25. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Dynamic Modules for OSGi:
Simplifica o uso da API OSGi através
do Spring com POJO's;
25 Globalcode – Open4Education
26. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Modules: Projeto guarda-
chuva que implementa a integração
com diversos outros frameworks e
ferramentas;
26 Globalcode – Open4Education
27. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Rich Client: Recursos para
desenvolvimento desktop com Swing
e Spring;
27 Globalcode – Open4Education
28. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring JavaConfig: Suporte a
configuração dos beans
programaticamente sem usar XML
ou anotações;
28 Globalcode – Open4Education
29. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring LDAP: Classes utilitárias
para interação com um serviço de
Lightweight Directory Access
Protocol (LDAP);
29 Globalcode – Open4Education
30. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Integration: Implementa o
suporte para integração de sistemas
via mensagens (EAI e Enterprise
Integration Patterns);
30 Globalcode – Open4Education
31. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring Batch: Suporte a execução
de processos em batch de longa
duração;
31 Globalcode – Open4Education
32. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring IDE: Plugin para incrementar
produtividade durante o
desenvolvimento com o Eclipse;
32 Globalcode – Open4Education
33. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring BeanDoc: Ferramenta para
gerar documentação semelhante ao
Javadoc;
33 Globalcode – Open4Education
34. Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring .NET: Porte de parte do Spring
Framework para desenvolvimento de
aplicações .NET!
34 Globalcode – Open4Education
35. Agenda
> Sobre o Spring Framework
> Escopo de integração com Java EE e outros
frameworks
> Sobre o Spring portfolio: Um suite de produtos
> Sobre o SpringSource Application Platform
35 Globalcode – Open4Education
37. Application Platform
> Servidor de aplicações em desenvolvimento pelo
SpringSource;
> Ainda na versão 1.0 beta;
> Baseado em OSGi (R4.1) para modulalização via
Eclipse Equinox (OSGi Spec RI);
> Suportará o conceito de profiles para facilitar a
customização da plataforma;
> Suporta empacotamento da aplicação em: OSGi
Bundles, Java EE WAR, Web Modules e
Platform Archive (PAR);
37 Globalcode – Open4Education
38. Application Platform
> Spring Framework embutido (obviamente!);
> Suporte a aplicações Java EE Web via Tomcat
embutido;
> Monitoramento via ferramenta Spring Application
Management Suite (produto SpringSource);
> Suporte ao desenvolvimento via SpringSource
Tool Suite (Branded Eclipse);
> Um repositório está disponível com diversas
bibliotecas para download e reempacotadas
como OSGi Bundles.
38 Globalcode – Open4Education
39. Conclusão
> O Spring Framework disponibiliza os serviços
Java EE via AOP para os POJO's;
> Permite o uso de AOP na aplicação;
> O framework não concorre com o Java EE;
> Vale a pena usar alguns projetos do Spring
portfolio;
> O servidor de aplicações e a plataforma Spring
estão nascendo;
> O Spring Framework ainda é uma boa opção
mesmo com o EJB 3 em cena;
39 Globalcode – Open4Education
40. Conclusão
A plataforma Spring pretende oferecer uma
alternativa completa e concorrente à
plataforma Java EE, mantendo
compatibilidade.
40 Globalcode – Open4Education