Apresentação realizada no dia 06/Nov/2010 no evento The Developers Conference (TDC2010) na trilha Java (16:40 às 17:30) promovido pela Globalcode e VOffice em Florianópolis/SC/Brasil.
1. Globalcode – Open4education
Spring 3: Uma plataforma além do
Framework
Dr. Spock
Instrutor Globalcode
Senior Software Architect
Profisional 1.9
2. Globalcode – Open4education
@bout me
Bacharel e especialista em Física pela UFV e
Unicamp;
Instrutor Globalcode em Campinas e SP desde 2005;
Desenvolvedor de aplicações Web desde 96 e Java
desde 99;
Atuação como arquiteto de software;
Certificações Java: SCJP e SCWCD;
Palestrante em eventos nacionais e internacionais:
JustJava, TDC e JavaOne.
9. Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
Spring
Webflow
Spring
Webflow
Spring
Security
Spring
Security
Spring
dm
Spring
dm
Spring
BlaseDS
Spring
BlaseDS
Spring
Web Service
Spring
Web Service
Spring
JavaConfig
Spring
JavaConfig
Spring
Integration
Spring
Integration
Spring
IDE
Spring
IDE
Spring
Batch
Spring
Batch
Spring
.NET
Spring
.NET
10. Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
Spring
Webflow
Spring
Webflow
Spring
Security
Spring
Security
Spring
dm
Spring
dm
Spring
BlaseDS
Spring
BlaseDS
Spring
Web Service
Spring
Web Service
Spring
JavaConfig
Spring
JavaConfig
Spring
Integration
Spring
Integration
Spring
IDE
Spring
IDE
Spring
Batch
Spring
Batch
Spring
.NET
Spring
.NET
Spring
ROO
Spring
ROO
12. Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
dm
Server
dm
Server
Groovy
Groovy
Grails
Grails
Hyperic
HQ
Hyperic
HQ
Hyperic
IQ
Hyperic
IQ
Cloud
Foundry
Cloud
Foundry
tc Server
(Tomcat)
tc Server
(Tomcat)
Spring
Tool Suite
Spring
Tool Suite
14. Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
Spring
GemFire
Spring
GemFire Spring
Data
Spring
Data
Spring
ActionScript
Spring
ActionScript
Spring
Phyton
Spring
Phyton
Spring
Social
Spring
Social
Spring
AOuth
Spring
AOuth
Spring
AMQP
Spring
AMQP
16. Globalcode – Open4education
Spring Framework 3
Suporte a Java SE 5+
Spring Expression Language (SpEL)
Suporte a REST
Suporte a Portlet 2.0
Validação declarativa do modelo
Spring 3.0 e Java EE 6
Pruning & Deprecation
Outras melhorias
17. Globalcode – Open4education
Arquitetura modularizada
Suporte a Java SE 5+
Spring Expression Language (SpEL)
Suporte a REST
Suporte a Portlet 2.0
Validação declarativa do modelo
Spring 3.0 e Java EE 6
Pruning & Deprecation
Outras melhorias
18. Globalcode – Open4education
Suporte a Java SE 5+
Uso de Generics
TaskExecutor do Spring extende
java.util.concurrent.Executor
AsyncTaskExecutor suporta java.util.concurrent.
Future
Listener tipado: ApplicationListener<E>
ApplicationEventMulticaster detecta tipo de evento
19. Globalcode – Open4education
Spring JavaConfig
Incorporou o projeto Spring JavaConfig
Classes de configuração com @Configuration
Métodos fábrica anotados com @Bean
20. Globalcode – Open4education
Spring JavaConfig
Criação de meta anotações
Uso combinado com anotações de espereótipo
Detecção automática (nenhuma configuração!)
21. Globalcode – Open4education
Reestruturação
Incorporou o módulo Object/XML Mapping (OXM)
Vindo do projeto Spring Web Services
Suporta as conversões usadas no REST
Implementa acesso via SQL XML
Infra estrutura de conversão de tipos Java
Conversores de tipo e formatadores "stateless" do Java
SE 5+
Substituindo PropertyEditors padrões do JDK
22. Globalcode – Open4education
Spring Expression
Language (SpEL)
Linguagem de expressões baseada no Unified EL
Sintaxe similar às ELs usadas no JSP/JSF
#{ expr }
Suporta: Literais, operadores (bool, rel, =, ?:, elvis,
safe, ponto), regex, variáveis, objetos implícitos,
projeção/seleção em coleções, invocar métodos,
invocar construtores e definição de funções
Extensível através de implementação de SPI
Todos os beans definidos são objetos implícitos
26. Globalcode – Open4education
Spring Expression
Language (SpEL)
EL em anotações dos componentes
Anotação para injeção de valores via EL: @Value
27. Globalcode – Open4education
Spring Expression
Language (SpEL)
Atributos de contexto
“systemProperties”
“systemEnvironment”
Referências implícitas aos beans do contexto pelo
nome (similar às expressões no JSF para os managed
beans)
Atributos de contexto web
Web: “contextParameters”, “contextAttributes”, “request”
e “session”
JSF: “param”, “initParam”, “facesContext”, etc
28. Globalcode – Open4education
Web: Suporte a REST
URI Templates
String definido uma URI contendo uma ou mais variáveis
Variáveis são substituídas por valores ao usar Spring
MVC
33. Globalcode – Open4education
Web: Suporte a REST
RestTemplate
Componente para um aplicação cliente invocar URLs
Restful
Similar a outros templates do Spring: JdbcTemplate,
JmsTemplate e WebServiceTemplate
34. Globalcode – Open4education
Web: Suporte a Portlet 2.0
Spring MVC 3 suporta anotações para
mapeamento das ações, requisições de recursos e
eventos do Portlet 2.0
@ActionMapping, @RenderMapping,
@ResourceMapping e @EventMapping
35. Globalcode – Open4education
Validação declarativa
Suporte a JSR-303 (Bean Validation)
Mesma meta informação via anotações para UI,
model e persistência.
Definição de Validadores
customizados
36. Globalcode – Open4education
Validação declarativa
Suporte a JSR-303 (Bean Validation)
Mesma meta informação via anotações para UI,
model e persistência.
Definição de Validadores
customizados
37. Globalcode – Open4education
Validação declarativa
Suporte a JSR-303 (Bean Validation)
Mesma meta informação via anotações para UI,
model e persistência.
Definição de Validadores
customizados
38. Globalcode – Open4education
Validação declarativa
Suporte a JSR-303 (Bean Validation)
Mesma meta informação via anotações para UI,
model e persistência.
Definição de Validadores
customizados
39. Globalcode – Open4education
Spring 3.0 e Java EE 6
Suporte antecipado ao Java EE 6: JSF 2.0, JPA
2.0, JSR-303 (Bean Validation), métodos
assíncronos com @Async ou @Asynchronous
(EJB 3.1).
Suporte completo ao Java EE 6: Spring 3.1
Servlet 3.0: Aguardando Glassfish 3 e Tomcat 7
JSR-236: APIs avançadas de concorrência
JSR-330: Anotações comuns para injeção de
dependências (DI)
40. Globalcode – Open4education
Pruning & Deprecation
Removido:
Suporte a Commons Attributes
Supote ao TopLink (em favor do JPA via EclipseLink)
Suporte a extensão de "Action" do Struts 1.x
Depreciado:
Suporte ao JUnit 3.8
Suporte ao Struts 1.x
Hierarquia de controles MVC (em favor das anotações)
Várias outras classes de suporte obsoletas
41. Globalcode – Open4education
Outras melhorias
Capacidade de serialização de beans em escopos
Web com uso de proxies serializáveis.
A desserialização obtem novamente as referencias
Agendamento: @Async (métodos assíncronos) e
@Scheduled para executar métodos com gatilho
baseado em máscara cron, preparado para a JSR-
236 (Concurrency Utilities for Java EE), XML
scheduling namespace
42. Globalcode – Open4education
Outras melhorias
Suporte a banco de dados embedded: HSQL, H2 e
Derby (JavaDB).
Extensível para adicionar outros bancos
Compatibilidade com Spring 2.5: 100% com o
modelo de programação e 95% com os pontos
de extensão
44. Globalcode – Open4education
Resumo & Futuro
Suporte a Java SE 5+ ao logo do framework
Não funciona com Java SE 1.3 e 1.4
Suporte extensível a EL e disponível no núcleo
Validação baseada em anotações
Possibilidade de eliminar 100% do XML
Compatibilidade com o Spring 2.5 no Java SE 5+
Outros produtos evoluirão para suportar Spring 3.x
Spring 3.1: Compatibilidade completa com Java
EE 6 e suporte a conversação
45. Globalcode – Open4education
Mais informações
SpringSource Community
http://www.springsource.org/
SpringSource – A division of VMWare
http://www.springsource.com/
Spring Brasil User Group
http://www.springbrasil.com.br/
What's new in Spring 3.0
http://www.infoq.com/presentations/Whats-New-in-Spring-3.0
Blog da Globalcode
http://blog.globalcode.com.br/