Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Plataforma Spring
   Alberto Lemos (Dr. Spock)
         Renato Bellia
          Ricardo Jun
          Julio Viegas



    ...
@bout (Dr. Spock)
 Físico formado pela UFV
 15 anos experiência aplicações Web
 +10 anos experiência com Java
 Instrutor d...
Agenda do Casual Class
 Plataforma Spring & Novidades do Spring 3
 Alberto Lemos (Dr. Spock)
 Spring Roo
 Renato Bellia (D...
Plataforma Spring
         &
Novidades do Spring 3
    Alberto Lemos (Dr. Spock)
      Instrutor Globalcode
       Arquite...
Agenda
 Sobre a Plataforma Spring

 Novidades do Spring Framework 3.0

 Epílogo: Resumo & Futuro

 Perguntas & Respostas:
...
Sobre a
Plataforma Spring



               Globalcode – Open4education
A Plataforma Spring




                      Globalcode – Open4education
A Plataforma Spring




                      Globalcode – Open4education
A Plataforma Spring




                      Globalcode – Open4education
A Plataforma Spring




                Spring
              Framework




                          Globalcode – Open4edu...
A Plataforma Spring




  Spring        Spring
 Webflow
              Framework




                          Globalcode –...
A Plataforma Spring




  Spring         Spring
 Webflow
               Framework
     Spring
    Security




           ...
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring
    Security
           ...
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring
    Security
           ...
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring                         ...
A Plataforma Spring




  Spring           Spring                 Spring
 Webflow                                JavaConfi...
A Plataforma Spring

                                          Spring
                                           .NET


  ...
A Plataforma Spring
                          Spring
                        Integration
                                 ...
A Plataforma Spring
               Spring     Spring
               Batch    Integration
                                 ...
A Plataforma Spring
               Spring     Spring
               Batch    Integration
    Spring                       ...
A Plataforma Spring
               Spring     Spring
               Batch    Integration
    Spring                       ...
A Plataforma Spring




                   Spring
                 Framework




                             Globalcode –...
A Plataforma Spring
                 Spring
                Tool Suite




                   Spring
                 Fram...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



                   Spring
          ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
          ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
          ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
          ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
          ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring           ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite    Cloud
   (Tomcat)                  Foundry



  ...
A Plataforma Spring
                 Spring
   tc Server    Tool Suite    Cloud
   (Tomcat)                  Foundry



  ...
Novidades do
Spring Framework 3.0



                Globalcode – Open4education
Novidades Spring 3
 Suporte a Java SE 5+
 Spring Expression Language (SpEL)
 Suporte a REST
 Suporte a Portlet 2.0
 Valida...
Novidades Spring 3
 Suporte a Java SE 5+
 Spring Expression Language (SpEL)
 Suporte a REST
 Suporte a Portlet 2.0
 Valida...
Suporte a Java SE 5+
 Uso de Generics




 TaskExecutor do Spring extende
 java.util.concurrent.Executor
 AsyncTaskExecuto...
Spring JavaConfig
 Incorporou o projeto Spring JavaConfig
 Classes de configuração com @Configuration
 Métodos fábrica ano...
Spring JavaConfig
 Criação de meta anotações
 Uso combinado com anotações de espereótipo
 Detecção automática (nenhuma con...
Reestruturação
 Incorporou o módulo Object/XML Mapping (OXM)
   Vindo do projeto Spring Web Services
   Suporta as convers...
Spring Expression
Language (SpEL)
 Linguagem de expressões baseada no Unified EL
 Sintaxe similar às ELs usadas no JSP/JSF...
Spring Expression
Language (SpEL)
 #{ 'Hello World'.concat(“!”) }
 #{ 'Hello World'.bytes.length }
 #{ new String('Hello W...
Spring Expression
Language (SpEL)
 Ternário: #{ boolExpr ? trueExpr : falseExpr }
 Elvis: #{ expr ?: exprDefault }
 Safe N...
Spring Expression
Language (SpEL)
 EL na definição de beans em XML




                                   Globalcode – Ope...
Spring Expression
Language (SpEL)
 EL em anotações dos componentes
   Anotação para injeção de valores via EL: @Value




...
Spring Expression
Language (SpEL)
 Atributos de contexto
   “systemProperties”
   “systemEnvironment”
   Referências implí...
Web: Suporte a REST
 URI Templates
   String definido uma URI contendo uma ou mais variáveis
   Variáveis são substituídas...
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable




                                   Globalcode – Ope...
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable
                               Opcional




           ...
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable
                               Opcional
               ...
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable
                                Opcional
              ...
Web: Suporte a REST
 Views default para gerar resposta




                                     Globalcode – Open4education
Web: Suporte a REST
 RestTemplate
   Componente para um aplicação cliente invocar URLs
   Restful
   Similar a outros temp...
Web: Suporte a Portlet 2.0
 Spring MVC 3 suporta anotações para
 mapeamento das ações, requisições de recursos e
 eventos ...
Validação declarativa
 Suporte a JSR-303 (Bean Validation)
 Mesma meta informação via anotações para UI,
 model e persistê...
Validação declarativa
 Suporte a JSR-303 (Bean Validation)
 Mesma meta informação via anotações para UI,
 model e persistê...
Validação declarativa
 Suporte a JSR-303 (Bean Validation)
 Mesma meta informação via anotações para UI,
 model e persistê...
Validação declarativa
 Suporte a JSR-303 (Bean Validation)
 Mesma meta informação via anotações para UI,
 model e persistê...
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íncrono...
Pruning & Deprecation
 Removido:
   Suporte a Commons Attributes
   Supote ao TopLink (em favor do JPA via EclipseLink)
  ...
Outras melhorias
 Capacidade de serialização de beans em escopos
 Web com uso de proxies serializáveis.
 A desserialização...
Outras melhorias
 Suporte a banco de dados embedded: HSQL, H2 e
 Derby (JavaDB).
 Extensível para adicionar outros bancos
...
Epílogo: Resumo & Futuro



                  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 ...
Mais informações
 SpringSource Community
   http://www.springsource.org/
 SpringSource – A division of VMWare
   http://ww...
Dúvidas?
           E-mail:
           spock@globalcode.com.br

           @HappyHour




                         Globalc...
Upcoming SlideShare
Loading in …5
×

Plataforma Spring e Novidades Spring 3

4,685 views

Published on

Slides usados pelo Dr. Spock durante Casual Class promovido pela Globalcode sobre a plataforma Spring.

Published in: Technology
  • Be the first to comment

Plataforma Spring e Novidades Spring 3

  1. 1. Plataforma Spring Alberto Lemos (Dr. Spock) Renato Bellia Ricardo Jun Julio Viegas Globalcode – Open4education
  2. 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. 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. 4. Plataforma Spring & Novidades do Spring 3 Alberto Lemos (Dr. Spock) Instrutor Globalcode Arquiteto Bacanão Globalcode – Open4education
  5. 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
  6. 6. Sobre a Plataforma Spring Globalcode – Open4education
  7. 7. A Plataforma Spring Globalcode – Open4education
  8. 8. A Plataforma Spring Globalcode – Open4education
  9. 9. A Plataforma Spring Globalcode – Open4education
  10. 10. A Plataforma Spring Spring Framework Globalcode – Open4education
  11. 11. A Plataforma Spring Spring Spring Webflow Framework Globalcode – Open4education
  12. 12. A Plataforma Spring Spring Spring Webflow Framework Spring Security Globalcode – Open4education
  13. 13. A Plataforma Spring Spring Spring Webflow Framework Spring Security Spring dm Globalcode – Open4education
  14. 14. A Plataforma Spring Spring Spring Webflow Framework Spring Security Spring Spring dm BlaseDS Globalcode – Open4education
  15. 15. A Plataforma Spring Spring Spring Webflow Framework Spring Spring Security Web Service Spring Spring dm BlaseDS Globalcode – Open4education
  16. 16. A Plataforma Spring Spring Spring Spring Webflow JavaConfig Framework Spring Spring Security Web Service Spring Spring dm BlaseDS Globalcode – Open4education
  17. 17. A Plataforma Spring Spring .NET Spring Spring Spring Webflow JavaConfig Framework Spring Spring Security Web Service Spring Spring dm BlaseDS Globalcode – Open4education
  18. 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. 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. 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. 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
  22. 22. A Plataforma Spring Spring Framework Globalcode – Open4education
  23. 23. A Plataforma Spring Spring Tool Suite Spring Framework Globalcode – Open4education
  24. 24. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) Spring Framework Globalcode – Open4education
  25. 25. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) dm Spring Framework Server Globalcode – Open4education
  26. 26. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) dm Spring Framework Server Groovy Globalcode – Open4education
  27. 27. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) dm Spring Framework Server Groovy Grails Globalcode – Open4education
  28. 28. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) dm Spring Framework Server Groovy Hyperic Grails HQ Globalcode – Open4education
  29. 29. A Plataforma Spring Spring tc Server Tool Suite (Tomcat) dm Spring Hyperic Framework Server IQ Groovy Hyperic Grails HQ Globalcode – Open4education
  30. 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. 31. A Plataforma Spring Spring tc Server Tool Suite Cloud (Tomcat) Foundry dm Spring Hyperic Framework Server IQ Groovy Hyperic Grails HQ Globalcode – Open4education
  32. 32. Novidades do Spring Framework 3.0 Globalcode – Open4education
  33. 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. 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. 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. 36. Spring JavaConfig Incorporou o projeto Spring JavaConfig Classes de configuração com @Configuration Métodos fábrica anotados com @Bean Globalcode – Open4education
  37. 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. 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. 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
  40. 40. 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
  41. 41. 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
  42. 42. Spring Expression Language (SpEL) EL na definição de beans em XML Globalcode – Open4education
  43. 43. Spring Expression Language (SpEL) EL em anotações dos componentes Anotação para injeção de valores via EL: @Value Globalcode – Open4education
  44. 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. 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. 46. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Globalcode – Open4education
  47. 47. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Globalcode – Open4education
  48. 48. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Captura: /hotels/42 Globalcode – Open4education
  49. 49. Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Captura: /hotels/42 Captura: /hotels/42/bookings/21 Globalcode – Open4education
  50. 50. Web: Suporte a REST Views default para gerar resposta Globalcode – Open4education
  51. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  61. 61. Epílogo: Resumo & Futuro Globalcode – Open4education
  62. 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. 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
  64. 64. Dúvidas? E-mail: spock@globalcode.com.br @HappyHour Globalcode – Open4education

×