tdc 2008 spring framework
DESCRIPTION
Apresentação sobre o Spring Framework realizado no TDC 2008 em Florianópolis.TRANSCRIPT
Globalcode – Open4Education1
Spring: Um suite de novas opções para Java EE
Alberto J Lemos (Dr. Spock)Instrutor Globalcode
Globalcode – Open4Education2
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
Globalcode – Open4Education3
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
Globalcode – Open4Education4
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.
Globalcode – Open4Education5
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!
Globalcode – Open4Education6
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).
Globalcode – Open4Education7
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;
Globalcode – Open4Education8
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
Globalcode – Open4Education9
Spring Framework
> Disponível no arquivo spring.jar
Globalcode – Open4Education10
Spring Framework
> Disponível no arquivo spring.jar
Core: Implementa o contêiner IoC;
Globalcode – Open4Education11
Spring Framework
> Disponível no arquivo spring.jarWeb: 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;
Globalcode – Open4Education12
Spring Framework
> Disponível no arquivo spring.jar
DAO: Classes utilitárias para desenvolvimento de DAO's com JDBC e gerenciamento de transações;
Globalcode – Open4Education13
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;
Globalcode – Open4Education14
Spring Framework
> Disponível no arquivo spring.jar
ORM: Implementa o suporte para integração com frameworks de mapeamento objeto/relacional.
Globalcode – Open4Education15
Spring Framework
> Disponível no arquivo spring.jar
Java EE: Classes utilitárias para integração com serviços Java EE;
Globalcode – Open4Education16
Spring Framework
> Disponível no arquivo spring.jar
Remoting: Expõe os métodos dos POJO's para invocação remota;
Globalcode – Open4Education17
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:
Globalcode – Open4Education18
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).
Globalcode – Open4Education19
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
Globalcode – Open4Education20
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).
Globalcode – Open4Education21
Spring Portfolio
> Um suite de produtos para aplicações baseadas no Spring.
Globalcode – Open4Education22
Spring Portfolio
> Um suite de produtos para aplicações baseadas no Spring.
Spring Security: Segurança 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;
Globalcode – Open4Education23
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);
Globalcode – Open4Education24
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;
Globalcode – Open4Education25
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;
Globalcode – Open4Education26
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;
Globalcode – Open4Education27
Spring Portfolio
> Um suite de produtos para aplicações baseadas no Spring.
Spring Rich Client: Recursos para desenvolvimento desktop com Swing e Spring;
Globalcode – Open4Education28
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;
Globalcode – Open4Education29
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);
Globalcode – Open4Education30
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);
Globalcode – Open4Education31
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;
Globalcode – Open4Education32
Spring Portfolio
> Um suite de produtos para aplicações baseadas no Spring.
Spring IDE: Plugin para incrementar produtividade durante o desenvolvimento com o Eclipse;
Globalcode – Open4Education33
Spring Portfolio
> Um suite de produtos para aplicações baseadas no Spring.
Spring BeanDoc: Ferramenta para gerar documentação semelhante ao Javadoc;
Globalcode – Open4Education34
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!
Globalcode – Open4Education35
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
Globalcode – Open4Education36
Spring Application Server
Globalcode – Open4Education37
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);
Globalcode – Open4Education38
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.
Globalcode – Open4Education39
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;
Globalcode – Open4Education40
Conclusão
A plataforma Spring pretende oferecer uma alternativa completa e concorrente à
plataforma Java EE, mantendo compatibilidade.
Globalcode – Open4Education41
Perguntas & Respostas
Globalcode – Open4Education42
Mais sobre o assunto
> Spring Framework. http://www.springframework.org/about
> Spring Framework Projects (Suite). http://www.springframework.org/projects
> SpringSource Application Platform. http://www.springsource.com/products/suite/applicationplatform
> SpringSource. http://www.springsource.com/
> Java EE Platform. http://java.sun.com/javaee/