SlideShare una empresa de Scribd logo
1 de 64
Plataforma Spring
   Alberto Lemos (Dr. Spock)
         Renato Bellia
          Ricardo Jun
          Julio Viegas



                               Globalcode – Open4education
@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
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
Plataforma Spring
         &
Novidades do Spring 3
    Alberto Lemos (Dr. Spock)
      Instrutor Globalcode
       Arquiteto Bacanão



                                Globalcode – Open4education
Agenda
 Sobre a Plataforma Spring

 Novidades do Spring Framework 3.0

 Epílogo: Resumo & Futuro

 Perguntas & Respostas:
   Durante a pizza, uva & cevada



                                   Globalcode – Open4education
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 – Open4education
A Plataforma Spring




  Spring        Spring
 Webflow
              Framework




                          Globalcode – Open4education
A Plataforma Spring




  Spring         Spring
 Webflow
               Framework
     Spring
    Security




                           Globalcode – Open4education
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring
    Security
               Spring
                dm


                             Globalcode – Open4education
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring
    Security
               Spring    Spring
                dm      BlaseDS


                                  Globalcode – Open4education
A Plataforma Spring




  Spring           Spring
 Webflow
                 Framework
     Spring                         Spring
    Security                      Web Service
               Spring    Spring
                dm      BlaseDS


                                  Globalcode – Open4education
A Plataforma Spring




  Spring           Spring                 Spring
 Webflow                                JavaConfig
                 Framework
     Spring                         Spring
    Security                      Web Service
               Spring    Spring
                dm      BlaseDS


                                  Globalcode – Open4education
A Plataforma Spring

                                          Spring
                                           .NET


  Spring           Spring                 Spring
 Webflow                                JavaConfig
                 Framework
     Spring                         Spring
    Security                      Web Service
               Spring    Spring
                dm      BlaseDS


                                  Globalcode – Open4education
A Plataforma Spring
                          Spring
                        Integration
                                              Spring
                                               .NET


  Spring           Spring                     Spring
 Webflow                                    JavaConfig
                 Framework
     Spring                             Spring
    Security                          Web Service
               Spring     Spring
                dm       BlaseDS


                                      Globalcode – Open4education
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
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
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
A Plataforma Spring




                   Spring
                 Framework




                             Globalcode – Open4education
A Plataforma Spring
                 Spring
                Tool Suite




                   Spring
                 Framework




                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



                   Spring
                 Framework




                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
                 Framework
 Server




                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
                 Framework
 Server



    Groovy



                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
                 Framework
 Server



    Groovy
                 Grails


                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring
                 Framework
 Server



    Groovy                   Hyperic
                 Grails        HQ


                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite
   (Tomcat)



  dm               Spring             Hyperic
                 Framework
 Server                                 IQ



    Groovy                   Hyperic
                 Grails        HQ


                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite    Cloud
   (Tomcat)                  Foundry



  dm               Spring             Hyperic
                 Framework
 Server                                 IQ



    Groovy                   Hyperic
                 Grails        HQ


                             Globalcode – Open4education
A Plataforma Spring
                 Spring
   tc Server    Tool Suite    Cloud
   (Tomcat)                  Foundry



  dm               Spring             Hyperic
                 Framework
 Server                                 IQ



    Groovy                   Hyperic
                 Grails        HQ


                             Globalcode – Open4education
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ção declarativa do modelo
 Spring 3.0 e Java EE 6
 Pruning & Deprecation
 Outras melhorias


                                     Globalcode – Open4education
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
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
Spring JavaConfig
 Incorporou o projeto Spring JavaConfig
 Classes de configuração com @Configuration
 Métodos fábrica anotados com @Bean




                                  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!)




                                   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



                                           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


                                         Globalcode – Open4education
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
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
Spring Expression
Language (SpEL)
 EL na definição de beans em XML




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




                                          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


                                            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




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




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




                                    Globalcode – Open4education
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable
                               Opcional
                                Captura: /hotels/42




                                    Globalcode – Open4education
Web: Suporte a REST
 Anotação criada para usar URIs: @PathVariable
                                Opcional
                                  Captura: /hotels/42


                      Captura: /hotels/42/bookings/21




                                      Globalcode – Open4education
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 templates do Spring: JdbcTemplate,
   JmsTemplate e WebServiceTemplate




                                         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




                                      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




                                   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




                                   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




                                   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




                                   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)


                                          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


                                          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


                                    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


                                  Globalcode – Open4education
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 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
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
Dúvidas?
           E-mail:
           spock@globalcode.com.br

           @HappyHour




                         Globalcode – Open4education

Más contenido relacionado

Similar a Spring 3 e Novidades

JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisGeorge Gastaldi
 
Introdução ao Spring Framework MVC
Introdução ao Spring Framework MVCIntrodução ao Spring Framework MVC
Introdução ao Spring Framework MVCMessias Batista
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Otávio Santana
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesFilipe Portes
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo maisakamud
 
TDC 2012 Goiânia - Entity Framework 5 e OData
TDC 2012 Goiânia - Entity Framework 5 e ODataTDC 2012 Goiânia - Entity Framework 5 e OData
TDC 2012 Goiânia - Entity Framework 5 e ODataMarcelo Paiva
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
 
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvensTDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvensDr. Spock
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooEder Magalhães
 
Amazon WebServices Architectur
Amazon WebServices ArchitecturAmazon WebServices Architectur
Amazon WebServices ArchitecturRafael Nunes
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...tdc-globalcode
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
Distribuindo Aplicações com WCF
Distribuindo Aplicações com WCFDistribuindo Aplicações com WCF
Distribuindo Aplicações com WCF.NetArchitects
 

Similar a Spring 3 e Novidades (20)

JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 Florianópolis
 
Introdução ao Spring Framework MVC
Introdução ao Spring Framework MVCIntrodução ao Spring Framework MVC
Introdução ao Spring Framework MVC
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" Faces
 
Slides da palestra no Flex mania 2011
Slides da palestra no Flex mania 2011Slides da palestra no Flex mania 2011
Slides da palestra no Flex mania 2011
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Spring data
Spring dataSpring data
Spring data
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
TDC 2012 Goiânia - Entity Framework 5 e OData
TDC 2012 Goiânia - Entity Framework 5 e ODataTDC 2012 Goiânia - Entity Framework 5 e OData
TDC 2012 Goiânia - Entity Framework 5 e OData
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvensTDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
TDC2011: Spring, uma plataforma enterprise, social, móvel e nas nuvens
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring Roo
 
Amazon WebServices Architectur
Amazon WebServices ArchitecturAmazon WebServices Architectur
Amazon WebServices Architectur
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
Distribuindo Aplicações com WCF
Distribuindo Aplicações com WCFDistribuindo Aplicações com WCF
Distribuindo Aplicações com WCF
 

Más de Dr. Spock

Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageDr. Spock
 
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...Dr. Spock
 
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvemEvitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvemDr. Spock
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Dr. Spock
 
Workshop de Introdução ao ScrumToys
Workshop de Introdução ao ScrumToysWorkshop de Introdução ao ScrumToys
Workshop de Introdução ao ScrumToysDr. Spock
 
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6Dr. Spock
 
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6Dr. Spock
 
TDC2011: Spring Mobile
TDC2011: Spring MobileTDC2011: Spring Mobile
TDC2011: Spring MobileDr. Spock
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseDr. Spock
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureDr. Spock
 
Spring Framework no desenvolvimento móvel
Spring Framework no desenvolvimento móvelSpring Framework no desenvolvimento móvel
Spring Framework no desenvolvimento móvelDr. Spock
 
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDesafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDr. Spock
 
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer FacesPerformance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer FacesDr. Spock
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDr. Spock
 
Computação Física com Arduino, Program-ME e Java
Computação Física com Arduino, Program-ME e JavaComputação Física com Arduino, Program-ME e Java
Computação Física com Arduino, Program-ME e JavaDr. Spock
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkDr. Spock
 
Produtividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineProdutividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineDr. Spock
 
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
Spring Framework 3: Um 'brainstorm' de novas funcionalidadesSpring Framework 3: Um 'brainstorm' de novas funcionalidades
Spring Framework 3: Um 'brainstorm' de novas funcionalidadesDr. Spock
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDr. Spock
 
Computação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaComputação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaDr. Spock
 

Más de Dr. Spock (20)

Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
 
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
 
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvemEvitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
Workshop de Introdução ao ScrumToys
Workshop de Introdução ao ScrumToysWorkshop de Introdução ao ScrumToys
Workshop de Introdução ao ScrumToys
 
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
 
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
 
TDC2011: Spring Mobile
TDC2011: Spring MobileTDC2011: Spring Mobile
TDC2011: Spring Mobile
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
 
TDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & AzureTDC2011: Java EE 6 & Azure
TDC2011: Java EE 6 & Azure
 
Spring Framework no desenvolvimento móvel
Spring Framework no desenvolvimento móvelSpring Framework no desenvolvimento móvel
Spring Framework no desenvolvimento móvel
 
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDesafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
 
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer FacesPerformance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
Performance Tips and Tricks: Java EE, Java Persistence API and JavaServer Faces
 
Dicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSFDicas e truques sobre performance em JavaEE, JPA e JSF
Dicas e truques sobre performance em JavaEE, JPA e JSF
 
Computação Física com Arduino, Program-ME e Java
Computação Física com Arduino, Program-ME e JavaComputação Física com Arduino, Program-ME e Java
Computação Física com Arduino, Program-ME e Java
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do Framework
 
Produtividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App EngineProdutividade com Spring Roo no Google App Engine
Produtividade com Spring Roo no Google App Engine
 
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
Spring Framework 3: Um 'brainstorm' de novas funcionalidadesSpring Framework 3: Um 'brainstorm' de novas funcionalidades
Spring Framework 3: Um 'brainstorm' de novas funcionalidades
 
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSFDicas e Truques sobre Performance em Java EE, JPA e JSF
Dicas e Truques sobre Performance em Java EE, JPA e JSF
 
Computação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma JavaComputação Física com Arduino/Program-ME e a Plataforma Java
Computação Física com Arduino/Program-ME e a Plataforma Java
 

Spring 3 e Novidades

  • 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
  • 6. Sobre a Plataforma Spring Globalcode – Open4education
  • 7. A Plataforma Spring Globalcode – Open4education
  • 8. A Plataforma Spring Globalcode – Open4education
  • 9. A Plataforma Spring Globalcode – Open4education
  • 10. A Plataforma Spring Spring Framework 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
  • 22. A Plataforma Spring Spring Framework 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
  • 32. Novidades do Spring Framework 3.0 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
  • 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. 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. Spring Expression Language (SpEL) EL na definição de beans em XML 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
  • 61. Epílogo: Resumo & Futuro 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
  • 64. Dúvidas? E-mail: spock@globalcode.com.br @HappyHour Globalcode – Open4education