Spring 3: Uma Plataforma além do Framework

6,642

Published on

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.

Published in: Technology, Education
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,642
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Spring 3: Uma Plataforma além do Framework

  1. 1. Spring 3: Uma plataforma além do Framework Dr. Spock Instrutor Globalcode Senior Software Architect Profisional 1.9 Globalcode – Open4education
  2. 2. @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. Globalcode – Open4education
  3. 3. Objetivo “Apresentar o Spring como uma plataforma com vários frameworks, integrações e serviços, além dos recursos do Spring Framework 3” Globalcode – Open4education
  4. 4. A Plataforma Spring Globalcode – Open4education
  5. 5. A Plataforma Spring Globalcode – Open4education
  6. 6. A Plataforma Spring Globalcode – Open4education
  7. 7. A Plataforma Spring Globalcode – Open4education
  8. 8. A Plataforma Spring Spring Spring Framework Framework Globalcode – Open4education
  9. 9. A Plataforma Spring Spring Spring Spring Spring Batch Batch Integration Integration Spring Spring Spring Spring IDE .NET .NET IDE Spring Spring Spring Spring Spring Spring Webflow JavaConfig Webflow Framework Framework JavaConfig Spring Spring Spring Spring Security Security Web Service Web Service Spring Spring Spring Spring dm dm BlaseDS BlaseDS Globalcode – Open4education
  10. 10. A Plataforma Spring Spring Spring Spring Spring Batch Batch Integration Integration Spring Spring Spring Spring IDE Spring .NET .NET IDE Spring ROO ROO Spring Spring Spring Spring Spring Spring Webflow JavaConfig Webflow Framework Framework JavaConfig Spring Spring Spring Spring Security Security Web Service Web Service Spring Spring Spring Spring dm dm BlaseDS BlaseDS Globalcode – Open4education
  11. 11. A Plataforma Spring Spring Spring Framework Framework Globalcode – Open4education
  12. 12. A Plataforma Spring Spring Spring tc Server tc Server Tool Suite Tool Suite Cloud Cloud (Tomcat) (Tomcat) Foundry Foundry dm Spring Spring Hyperic dm Framework Hyperic Server Server Framework IQ IQ Groovy Groovy Hyperic Hyperic Grails Grails HQ HQ Globalcode – Open4education
  13. 13. A Plataforma Spring Spring Spring Framework Framework Globalcode – Open4education
  14. 14. A Plataforma Spring Spring Spring Social Social Spring Spring Spring Spring AOuth AOuth Phyton Phyton Spring Spring Framework Framework Spring Spring Spring Spring AMQP AMQP ActionScript ActionScript Spring Spring Spring GemFire Spring GemFire Data Data Globalcode – Open4education
  15. 15. O Spring Framework 3 Globalcode – Open4education
  16. 16. 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 Globalcode – Open4education
  17. 17. 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 Globalcode – Open4education
  18. 18. 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
  19. 19. Spring JavaConfig Incorporou o projeto Spring JavaConfig Classes de configuração com @Configuration Métodos fábrica anotados com @Bean Globalcode – Open4education
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. Spring Expression Language (SpEL) #{ 'Hello World'.concat(“!”) } #{ 'Hello World'.bytes.length } #{ new String('Hello World').toUpperCase() } #{ systemProperties['user.region'] } #{ myBean.property } #{ myBean.isMember('Dr. Spock') } #{ name = 'Dr. Roo'} #{ T(java.lang.Math).random() } #{ 'xyz' instanceof T(int)} Globalcode – Open4education
  24. 24. Spring Expression Language (SpEL) Ternário: #{ boolExpr ? trueExpr : falseExpr } Elvis: #{ expr ?: exprDefault } Safe Navigation: #{ myBean.address?.city} Coll. Selection: #{ products.?[price > 100.0] } Map Selection: #{ map.?[value < 27] } ^[ selExpr ] seleciona o primeiro $[ selExpr ] seleciona o último Coll. Projection: #{ members.![address.city] } Globalcode – Open4education
  25. 25. Spring Expression Language (SpEL) EL na definição de beans em XML Globalcode – Open4education
  26. 26. Spring Expression Language (SpEL) EL em anotações dos componentes Anotação para injeção de valores via EL: @Value Globalcode – Open4education
  27. 27. 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
  28. 28. 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
  29. 29. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Globalcode – Open4education
  30. 30. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Opcional Globalcode – Open4education
  31. 31. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Opcional Captura: /hotels/42 Captura: /hotels/42 Globalcode – Open4education
  32. 32. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Opcional Captura: /hotels/42 Captura: /hotels/42 Captura: /hotels/42/bookings/21 Captura: /hotels/42/bookings/21 Globalcode – Open4education
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. Epílogo: Resumo & Futuro Globalcode – Open4education
  44. 44. 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 Globalcode – Open4education
  45. 45. 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
  46. 46. Perguntas & Respostas Globalcode – Open4education
  47. 47. Thank you! Twitter @drspockbr Blog do Spock http://blog.spock.com.br/ E-mail spock@globalcode.com.br Globalcode – Open4education

×