SlideShare uma empresa Scribd logo
1 de 47
Globalcode – Open4education
Spring 3: Uma plataforma além do
Framework
Dr. Spock
Instrutor Globalcode
Senior Software Architect
Profisional 1.9
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.
Globalcode – Open4education
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
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
Spring
Framework
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
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
Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
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
Globalcode – Open4education
A Plataforma Spring
Spring
Framework
Spring
Framework
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
Globalcode – Open4education
O Spring Framework 3
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
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
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
Opcional
Globalcode – Open4education
Web: Suporte a REST
Anotação criada para usar URIs: @PathVariable
Opcional
Opcional
Captura: /hotels/42
Captura: /hotels/42
Globalcode – Open4education
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
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: 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
Perguntas & Respostas
Globalcode – Open4education
Thank you!
Twitter
@drspockbr
Blog do Spock
http://blog.spock.com.br/
E-mail
spock@globalcode.com.br

Mais conteúdo relacionado

Mais procurados

Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação mavenAndré Justi
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingEder Magalhães
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Vinicius Pulgatti
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5Rogério Moraes de Carvalho
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EEEder Magalhães
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend FrameworkJaime Neto
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF CoreRogério Moraes de Carvalho
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 

Mais procurados (20)

Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
 
Maven
MavenMaven
Maven
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Aula1
Aula1Aula1
Aula1
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
Java em 2021
Java em 2021Java em 2021
Java em 2021
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
 
Java 9, 10, 11
Java 9, 10, 11Java 9, 10, 11
Java 9, 10, 11
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 

Semelhante a Spring Plataforma

MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Google AppEngine and JEE
Google AppEngine and JEEGoogle AppEngine and JEE
Google AppEngine and JEERafael Nunes
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Dr. Spock
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesEder Magalhães
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoRenato Groff
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...Carlos A. Junior Spohr Poletto
 
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
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA Rodrigo Cândido da Silva
 
Implementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreImplementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreRenato Groff
 
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
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
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
 

Semelhante a Spring Plataforma (20)

MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Google AppEngine and JEE
Google AppEngine and JEEGoogle AppEngine and JEE
Google AppEngine and JEE
 
Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!Criando uma Aplicação Web com Spring Roo em 5 minutos!
Criando uma Aplicação Web com Spring Roo em 5 minutos!
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
 
Spring Roo
Spring RooSpring Roo
Spring Roo
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
 
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
VRaptor 3, JPA, Hibernate, Geotools e OpenLayers, ajudando Pedro Alvares Cabr...
 
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
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
 
Implementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreImplementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto Alegre
 
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
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
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
 
Java v1.1
Java v1.1Java v1.1
Java v1.1
 

Mais 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
 
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: 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
 
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
 
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
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de ReusoDr. Spock
 

Mais 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
 
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: 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
 
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
 
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
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de Reuso
 

Spring Plataforma

  • 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.
  • 3. Globalcode – Open4education Objetivo “Apresentar o Spring como uma plataforma com vários frameworks, integrações e serviços, além dos recursos do Spring Framework 3”
  • 8. Globalcode – Open4education A Plataforma Spring Spring Framework Spring Framework
  • 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
  • 11. Globalcode – Open4education A Plataforma Spring Spring Framework Spring Framework
  • 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
  • 13. Globalcode – Open4education A Plataforma Spring Spring Framework Spring Framework
  • 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
  • 15. Globalcode – Open4education O Spring Framework 3
  • 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
  • 23. 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)}
  • 24. 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] }
  • 25. Globalcode – Open4education Spring Expression Language (SpEL) EL na definição de beans em XML
  • 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
  • 29. Globalcode – Open4education Web: Suporte a REST Anotação criada para usar URIs: @PathVariable
  • 30. Globalcode – Open4education Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Opcional
  • 31. Globalcode – Open4education Web: Suporte a REST Anotação criada para usar URIs: @PathVariable Opcional Opcional Captura: /hotels/42 Captura: /hotels/42
  • 32. Globalcode – Open4education 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
  • 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/
  • 47. Globalcode – Open4education Thank you! Twitter @drspockbr Blog do Spock http://blog.spock.com.br/ E-mail spock@globalcode.com.br