Spring: Um suite de novas opções para Java EE

Propaganda
Spring: Um suite de novas
opções para Java EE
Alberto J Lemos (Dr. Spock)
Instrutor Globalcode
Ricardo Jun Taniguchi
Instrutor Globalcode
1
Globalcode – Open4Education
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
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
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
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
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
Para o que não serve?
> Tornar um código existente em um código bem
estruturado;
> Gerenciar recursos;
> Garantir a qualidade do código;
7
Globalcode – Open4Education
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
Spring Framework
> Disponível no arquivo spring.jar
9
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
Core:
Core: Implementa
Implementa oo
contêiner
contêiner IoC;
IoC;
10
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
Web:
Web: Recursos
Recursos para
para implementação
implementação de
de
aplicações
aplicações Web:
Web: integração
integração com
com
frameworks
frameworks MVC,
MVC, implementação
implementação própria
própria
de
de MVC
MVC ee integração
integração com
com tecnologias
tecnologias de
de
visualização;
visualização;
11
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
DAO:
DAO: Classes
Classes utilitárias
utilitárias para
para
desenvolvimento
desenvolvimento de
de DAO's
DAO's com
com JDBC
JDBC ee
gerenciamento
gerenciamento de
de transações;
transações;
12
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
AOP:
AOP: Disponibiliza
Disponibiliza oo conceito
conceito de
de
aspectos
aspectos via
via AOP
AOP Alliance
Alliance ee AspectJ
AspectJ
para
para integrar
integrar os
os POJO's
POJO's com
com os
os
serviços
serviços enterprise;
enterprise;
13
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
ORM:
ORM: Implementa
Implementa oo suporte
suporte para
para
integração
integração com
com frameworks
frameworks de
de
mapeamento
mapeamento objeto/relacional.
objeto/relacional.
14
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
Java
Java EE:
EE: Classes
Classes utilitárias
utilitárias para
para
integração
integração com
com serviços
serviços Java
Java EE;
EE;
15
Globalcode – Open4Education
Spring Framework
> Disponível no arquivo spring.jar
Remoting:
Remoting: Expõe
Expõe os
os métodos
métodos
dos
dos POJO's
POJO's para
para invocação
invocação
remota;
remota;
16
Globalcode – Open4Education
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
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
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
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
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
21
Globalcode – Open4Education
Spring Portfolio
Security:
> Um suite deSpring
produtos
paraSegurança
aplicações baseadas
Spring
Security:
Segurança
declarativa via
via XML
XML ou
ou anotações
anotações com
com
no Spring. declarativa
suporte
suporte aa AOP
AOP ee integração
integração com
com
tecnologias
tecnologias de
de segurança:
segurança: JAAS,
JAAS,
LDAP,
LDAP, DAO,
DAO, OpenID,
OpenID, CAS,
CAS, X509,
X509,
Windows
Windows NTLM;
NTLM;
22
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Web
Web Service:
Service: Suporte
Suporte aa Web
Web
Services
Services aa partir
partir da
da definição
definição do
do XML
XML
Schema
Schema ee WSDL
WSDL (Data
(Data Contract
Contract ee
Service
Service Contract);
Contract);
23
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Web
Web Flow:
Flow: Suporte
Suporte ao
ao
controle
controle de
de fluxo
fluxo de
de navegação
navegação Web,
Web,
integração
integração com
com JSF,
JSF, conversação
conversação ee
Ajax;
Ajax;
24
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Dynamic
Dynamic Modules
Modules for
for OSGi:
OSGi:
Simplifica
Simplifica oo uso
uso da
da API
API OSGi
OSGi através
através
do
do Spring
Spring com
com POJO's;
POJO's;
25
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Modules:
Modules: Projeto
Projeto guardaguardachuva
chuva que
que implementa
implementa aa integração
integração
com
com diversos
diversos outros
outros frameworks
frameworks ee
ferramentas;
ferramentas;
26
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Rich
Rich Client:
Client: Recursos
Recursos para
para
desenvolvimento
desenvolvimento desktop
desktop com
com Swing
Swing
ee Spring;
Spring;
27
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring JavaConfig:
JavaConfig: Suporte
Suporte aa
configuração
configuração dos
dos beans
beans
programaticamente
programaticamente sem
sem usar
usar XML
XML
ou
ou anotações;
anotações;
28
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring LDAP:
LDAP: Classes
Classes utilitárias
utilitárias
para
para interação
interação com
com um
um serviço
serviço de
de
Lightweight
Lightweight Directory
Directory Access
Access
Protocol
Protocol (LDAP);
(LDAP);
29
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Integration:
Integration: Implementa
Implementa oo
suporte
suporte para
para integração
integração de
de sistemas
sistemas
via
via mensagens
mensagens (EAI
(EAI ee Enterprise
Enterprise
Integration
Integration Patterns);
Patterns);
30
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring Batch:
Batch: Suporte
Suporte aa execução
execução
de
de processos
processos em
em batch
batch de
de longa
longa
duração;
duração;
31
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring IDE:
IDE: Plugin
Plugin para
para incrementar
incrementar
produtividade
produtividade durante
durante oo
desenvolvimento
desenvolvimento com
com oo Eclipse;
Eclipse;
32
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring BeanDoc:
BeanDoc: Ferramenta
Ferramenta para
para
gerar
gerar documentação
documentação semelhante
semelhante ao
ao
Javadoc;
Javadoc;
33
Globalcode – Open4Education
Spring Portfolio
> Um suite de produtos para aplicações baseadas
no Spring.
Spring
Spring .NET:
.NET: Porte
Porte de
de parte
parte do
do Spring
Spring
Framework
Framework para
para desenvolvimento
desenvolvimento de
de
aplicações
aplicações .NET!
.NET!
34
Globalcode – Open4Education
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
Spring Application Server
36
Globalcode – Open4Education
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
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
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
Conclusão
A plataforma Spring pretende oferecer uma
alternativa completa e concorrente à
plataforma Java EE, mantendo
compatibilidade.
40
Globalcode – Open4Education
Perguntas & Respostas
41
Globalcode – Open4Education
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/
42
Globalcode – Open4Education
Download