O documento resume uma apresentação sobre a plataforma Spring e as principais novidades do Spring Framework 3.0. O documento discute a arquitetura da plataforma Spring, as principais atualizações no Spring 3 como suporte a Java SE 5+, validação declarativa, suporte RESTful e melhor integração com Java EE 6. A apresentação também fornece detalhes sobre outras melhorias e o futuro do Spring Framework.
Computação Física com Arduino/Program-ME e a Plataforma Java
Plataforma Spring e Novidades Spring 3
1. Plataforma Spring
Alberto Lemos (Dr. Spock)
Renato Bellia
Ricardo Jun
Julio Viegas
Globalcode – Open4education
2. @bout (Dr. Spock)
Físico formado pela UFV
15 anos experiência aplicações Web
+10 anos experiência com Java
Instrutor da Globalcode Campinas e São Paulo
+1200 horas de treinamentos ministrados
Membro do SBUG – Spring Brasil User Group
Palestrante Globalcode, SouJava, JustJava e
JavaOne
Certificações: SCJP e SCWCD
Globalcode – Open4education
3. Agenda do Casual Class
Plataforma Spring & Novidades do Spring 3
Alberto Lemos (Dr. Spock)
Spring Roo
Renato Bellia (Dr. Roo)
Tools: Spring Tool Suite, tc Server e dm Server
Ricardo Jun (Dr. Tool)
Spring + Cloud Computing
Julio Viegas (Dr. Cloud)
Lançamento do Spring Brasil User Group
Alberto Lemos (Dr. Spock)
Globalcode – Open4education
4. Plataforma Spring
&
Novidades do Spring 3
Alberto Lemos (Dr. Spock)
Instrutor Globalcode
Arquiteto Bacanão
Globalcode – Open4education
5. Agenda
Sobre a Plataforma Spring
Novidades do Spring Framework 3.0
Epílogo: Resumo & Futuro
Perguntas & Respostas:
Durante a pizza, uva & cevada
Globalcode – Open4education
11. A Plataforma Spring
Spring Spring
Webflow
Framework
Globalcode – Open4education
12. A Plataforma Spring
Spring Spring
Webflow
Framework
Spring
Security
Globalcode – Open4education
13. A Plataforma Spring
Spring Spring
Webflow
Framework
Spring
Security
Spring
dm
Globalcode – Open4education
14. A Plataforma Spring
Spring Spring
Webflow
Framework
Spring
Security
Spring Spring
dm BlaseDS
Globalcode – Open4education
15. A Plataforma Spring
Spring Spring
Webflow
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
16. A Plataforma Spring
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
17. A Plataforma Spring
Spring
.NET
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
18. A Plataforma Spring
Spring
Integration
Spring
.NET
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
19. A Plataforma Spring
Spring Spring
Batch Integration
Spring
.NET
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
20. A Plataforma Spring
Spring Spring
Batch Integration
Spring Spring
IDE .NET
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
21. A Plataforma Spring
Spring Spring
Batch Integration
Spring Spring
IDE Spring .NET
ROO
Spring Spring Spring
Webflow JavaConfig
Framework
Spring Spring
Security Web Service
Spring Spring
dm BlaseDS
Globalcode – Open4education
23. A Plataforma Spring
Spring
Tool Suite
Spring
Framework
Globalcode – Open4education
24. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
Spring
Framework
Globalcode – Open4education
25. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
dm Spring
Framework
Server
Globalcode – Open4education
26. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
dm Spring
Framework
Server
Groovy
Globalcode – Open4education
27. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
dm Spring
Framework
Server
Groovy
Grails
Globalcode – Open4education
28. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
dm Spring
Framework
Server
Groovy Hyperic
Grails HQ
Globalcode – Open4education
29. A Plataforma Spring
Spring
tc Server Tool Suite
(Tomcat)
dm Spring Hyperic
Framework
Server IQ
Groovy Hyperic
Grails HQ
Globalcode – Open4education
30. A Plataforma Spring
Spring
tc Server Tool Suite Cloud
(Tomcat) Foundry
dm Spring Hyperic
Framework
Server IQ
Groovy Hyperic
Grails HQ
Globalcode – Open4education
31. A Plataforma Spring
Spring
tc Server Tool Suite Cloud
(Tomcat) Foundry
dm Spring Hyperic
Framework
Server IQ
Groovy Hyperic
Grails HQ
Globalcode – Open4education
33. Novidades Spring 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
Globalcode – Open4education
34. Novidades Spring 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
Globalcode – Open4education
35. 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
Globalcode – Open4education
36. Spring JavaConfig
Incorporou o projeto Spring JavaConfig
Classes de configuração com @Configuration
Métodos fábrica anotados com @Bean
Globalcode – Open4education
37. Spring JavaConfig
Criação de meta anotações
Uso combinado com anotações de espereótipo
Detecção automática (nenhuma configuração!)
Globalcode – Open4education
38. 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
Globalcode – Open4education
39. 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
Globalcode – Open4education
43. Spring Expression
Language (SpEL)
EL em anotações dos componentes
Anotação para injeção de valores via EL: @Value
Globalcode – Open4education
44. 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
Globalcode – Open4education
45. 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
Globalcode – Open4education
46. Web: Suporte a REST
Anotação criada para usar URIs: @PathVariable
Globalcode – Open4education
47. Web: Suporte a REST
Anotação criada para usar URIs: @PathVariable
Opcional
Globalcode – Open4education
48. Web: Suporte a REST
Anotação criada para usar URIs: @PathVariable
Opcional
Captura: /hotels/42
Globalcode – Open4education
49. Web: Suporte a REST
Anotação criada para usar URIs: @PathVariable
Opcional
Captura: /hotels/42
Captura: /hotels/42/bookings/21
Globalcode – Open4education
50. Web: Suporte a REST
Views default para gerar resposta
Globalcode – Open4education
51. Web: Suporte a REST
RestTemplate
Componente para um aplicação cliente invocar URLs
Restful
Similar a outros templates do Spring: JdbcTemplate,
JmsTemplate e WebServiceTemplate
Globalcode – Open4education
52. 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
Globalcode – Open4education
53. 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
Globalcode – Open4education
54. 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
Globalcode – Open4education
55. 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
Globalcode – Open4education
56. 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
Globalcode – Open4education
57. 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)
Globalcode – Open4education
58. 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
Globalcode – Open4education
59. 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
Globalcode – Open4education
60. 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
Globalcode – Open4education
62. 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: Q2 2010, Compatibilidade completa
com Java EE 6 e suporte a conversação
Globalcode – Open4education
63. 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/
Globalcode – Open4education