SlideShare uma empresa Scribd logo
O Spring está morto! Viva o Spring!
Era uma vez...
Havia uma tecnoologia
maltida from hell
chamada Java EE 1.4.
Essa tecnologia tinha um
filho chamado EJB 2.1.
E o mundo sofreu em dor
e ranger de dentes. E
ouve morte e desgraça
pelo mundo...
Precisa mesmo continuar?
O Spring está morto! Viva o Spring!
2002 2004 2005
O Spring está morto! Viva o Spring!
Tá falando de quem mesmo?
É fanboy? Tem fanboismo?
 Corre Java EE, corre!
◦ Injeção de dependências.
◦ Anotações
◦ Pojos
◦ Aspectos
◦ Leveza
 Java EE não significa mais Java Evil Edition
 Java EE faz tudo...
◦ Eu disse TUDO
 TUDO MESMO (com negrito, itálico e sublinhado)
SIM, TUDO!!!!
 ...o que o Spring faz!
Spring
quer
MATAR o
Java EE
 Spring é confuso
 Spring é uma stack por si só
 Java EE 6 já é bom o suficiente
 Desenvolvimento Spring é lento
 XML, XML, XML!!!
 Chapolin ganha do Thor
IÚ TÁ DE
BRINCATION
UITE
ME, CARA?
 Spring resolve problemas que Java Eenão
resolve
◦ MVC action based
◦ Processamento em lote
◦ Integração
◦ Acesso a dados não relacionais
◦ Implantado em qualquer servidor Java
◦ Big Data
Spring
Java
EE
 Roo
 Security
◦ Security OAuth
 Shell
 Social
◦ Social Facebook
◦ Social Twitter
 Spring Web Flow
 Spring Web
Services
 Flex
 Framework
 For Apache
Hadoop
 For Android
 HATEOAS
 Integration
 LDAP
 Mobile
 AMQP
 Batch
 Spring Data
◦ JPA
◦ Data Commons
◦ JDBC Extensions
◦ MongoDB
◦ Neo4J
◦ Redis
◦ REST
◦ Solr
◦ GemFire
 Anotações
 Java Configuration
 Spring Expression
Language
 MVC
◦ Parte do Core
 REST
 Async
 Declarative
◦ Validation
◦ Formatting
◦ Caching
◦ Scheduling
 CDI – JSR 330
 Beans Validation – JSR
303
 Servlet 3.0
 Spring Data
 Nova casa: http://spring.io
◦ Documentação
 Novos guias e tutoriais
 Guias mais focados e rápidos de executar
 Código „blank‟ inicial e código pronto para verificação
◦ Fóruns
◦ Blogs
◦ Informações sobre cada projeto
◦ Downloads
◦ ETC.
O Spring está morto! Viva o Spring!
 Remoção de pacotes e métodos depreciados
 Groovy
◦ BeanBuilder
◦ GenericGroovyApplicationContext
 Definição condicional de Beans
◦ @Conditional
 Spring Boot
 Autowiring com Generics
 Hypermedia - HATEOS
 Messaging and Websockets
 Suporte a Java 8
◦ IDE
 IntelliJ 12
 Spring Tool Suite - em fase de preview
◦ Lambda expressions
◦ Method references
◦ JSR-310 DateTime
◦ Repeatable annotations
◦ Parameter name Discovery
 Advanced reflection support
◦ Parameter names on interfaces
 Suporte a Java EE 7
◦ JMS 2.0
◦ JTA 1.2
◦ JPA 2.1
◦ Bean Validation 1.1
◦ JSR 236 - Concurrency
 Maior produtividade com Spring Boot
◦ Plataforma de criação rápida de aplicações
standalone
 Basta rodar
 Servidor embutido
◦ Pode criar war convencional
◦ Convenção sobre configuração
◦ Visão mais parcial da plataforma Spring
◦ Foco maior na aplicação e não no overhead
 Bibliotecas
 Configuração de servidores
 Configuração da aplicação
 Dados relacionais e tradicionais
◦ *Template
◦ Suporte a JPA
◦ Suporte a Hibernate
◦ JMS e AMPQ message brokers
◦ Suporte melhorado com Java 8
 Lambda Expressions
 Componente principal: repositório
◦ Repository Design Pattern
◦ Interface implementada em runtime
◦ Convenção sobre Configuração
 NoSQL, NewSQL e NOSQL
 JPA, Redis, MongoDB, Neo4J, ElasticSearch, S
OLR, CouchDB, Riak, ...
 Não é uma solução pra tudo
 É um guarda chuva
// automatically exposes a REST endpoint at /users/*
@RestResource (path = "users", rel = "users")
public interface UserRepository
extends PagingAndSortingRepository {
// select * from users where username = ?
User findByUsername(@Param("username") String username);
// select * from users
// where firstName =? or lastName = ? or username = ?
List findUsersByFirstNameOrLastNameOrUsername(
@Param("firstName") String firstName,
@Param("lastName") String lastName,
@Param("username") String username );
}
 Ecosistema Hadoop passa, hoje, por
problemas que já enfrentamos antes
◦ Diversos projetos sendo desenvolvidos
independentemente
◦ Integração de frameworks é dolorosa
 Spring for Apache Hadoop to the rescue
◦ HBase, Hive, Pig, Cascading e YARN
O Spring está morto! Viva o Spring!
 Framework de integração no estilo descrito
em Enterprise Integration Patterns
 Sistemas conectados através de channels
◦ Message queues
 Diversos adaptadores
◦ FTPS, XMPP, JDBC, SFTP, Hadoop‟s HDFS, Twitter,
Splunk, JDBC, JMS, AMQP, Twitter, GemFire, etc…
 Processamento de grandes quantidades de
dados sequenciais em lote
 Baseado na JSR 352: Batch Applications for
the Java Platform
◦ Contribuição do Spring
 Um job é composto de um ou mais passos
 Cada passo contém
◦ Um ou mais ItemReader
◦ Um ou mais ItemProcessor
◦ Um ou mais ItemWriter
O Spring está morto! Viva o Spring!
 Spring Batch + Spring
Integration + Esteróides
 Sistema de
ingestão, processamento, anális
e e exportação de dados
◦ Extensível
◦ Unificado
◦ Distribuído
 Vem ni mim, BigData!
 Spring é uma implementação.
 Java EE é uma especificação.
 Dependência X Recursos
 Contratos e suporte comercial
 Skill da equipe
 Paixão e fanboismo!
Eu só respeito sua opinião porque todo
mundo tem o direito de estar errado
 O Spring precisa do Java EE assim como Java
EE Precisa do Java
 Em projetos meus, prefiro usar Spring
 Qual dos dois aprender? OS DOIS.
 Após anos e anos, vejo que "padronizado" e
"novo" nem sempre quer dizer "melhor".
 A comunidade Java já mostrou que manter
retrocompatibilidade faz parte da cultura
Java, que não é uma vantagem oferecida
apenas pelo JCP.
 Java EE o padrão de direito, mas Spring ainda
é o Padrão DE FATO
◦ MAMILOS
No pain, No gain.
No brain, No pain.
 Quanto tempo vai levar até que o Java EE
tenha um projeto de framework web action-
based?
 Quanto tempo até o Spring e Java EE
convergirem e Spring se tornar (ou fornecer)
uma implementação Java EE?
 Estaria a Oracle dominando o JCP, como a Sun
fez? Se sim, qual a diferença entre usar
Spring e Java EE?
 A Oracle tem demonstrado um certo
“desrespeito” com os projetos opensource.
◦ Hudson/Jenkins, Open Office, Glasfish...
◦ Será que a longo prazo manterá o Java EE realmente
livre?
 Spring é proprietário? As implementações
Java EE são realmente livres?
Podem perguntar o que quiserem. Se eu não
responder, existe um motivo pra isso: eu não
sei.

Mais conteúdo relacionado

Mais procurados

Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
Eteg
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
Paulino Michelazzo
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
Fernanda Ferreira
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parece
jesuinoPower
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
Arthur Furlan
 
Python na Web
Python na WebPython na Web
Python na Web
Igor Sobreira
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
jesuinoPower
 
Trilhando o caminho PHP [2.0]
Trilhando o caminho PHP [2.0]Trilhando o caminho PHP [2.0]
Trilhando o caminho PHP [2.0]
Rafael Dohms
 
Trilhando o Caminho PHP - PHPConf2008
Trilhando o Caminho PHP - PHPConf2008Trilhando o Caminho PHP - PHPConf2008
Trilhando o Caminho PHP - PHPConf2008
Rafael Dohms
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
Leandro Silva
 
Despertando para o PHP
Despertando para o PHPDespertando para o PHP
Despertando para o PHP
Rafael Dohms
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
Igor Sobreira
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
Leandro Silva
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em Android
Bruno Oliveira
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
Rodrigo Branas
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
jesuinoPower
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Paulino Michelazzo
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
rosenclever
 
Componentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada frameworkComponentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada framework
Flávio Lisboa
 

Mais procurados (19)

Inovando na plataforma Java
Inovando na plataforma JavaInovando na plataforma Java
Inovando na plataforma Java
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parece
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
 
Python na Web
Python na WebPython na Web
Python na Web
 
Introdução ao java fx e visage
Introdução ao java fx e visageIntrodução ao java fx e visage
Introdução ao java fx e visage
 
Trilhando o caminho PHP [2.0]
Trilhando o caminho PHP [2.0]Trilhando o caminho PHP [2.0]
Trilhando o caminho PHP [2.0]
 
Trilhando o Caminho PHP - PHPConf2008
Trilhando o Caminho PHP - PHPConf2008Trilhando o Caminho PHP - PHPConf2008
Trilhando o Caminho PHP - PHPConf2008
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
 
Despertando para o PHP
Despertando para o PHPDespertando para o PHP
Despertando para o PHP
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em Android
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Componentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada frameworkComponentes Transformers: Combinando o melhor de cada framework
Componentes Transformers: Combinando o melhor de cada framework
 

Semelhante a O Spring está morto! Viva o Spring!

Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
Diogo Rafael da Silva
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Vinicius Reis
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
Wanderson Oliveira
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
Wanderson Oliveira
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
Adriano Tavares
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005
Phil Calçado
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
CASSIANE SILVA
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
Daniel Alves
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
Patricia Marques
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
rollbackpt
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
Felipe Vargas Rigo
 
Introdução ao java
Introdução ao javaIntrodução ao java
Introdução ao java
Nécio de Lima Veras
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
Pedro Cavalero
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
Frederico Maia Arantes
 
Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011
Frederico Maia Arantes
 
Imergindo na JVM
Imergindo na JVMImergindo na JVM
Imergindo na JVM
Otávio Santana
 
NetBeans: a IDE que você precisa
NetBeans: a IDE que você precisaNetBeans: a IDE que você precisa
NetBeans: a IDE que você precisa
José Maria Silveira Neto
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
William Gouvea
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagem
liverig
 

Semelhante a O Spring está morto! Viva o Spring! (20)

Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Inovando na Plataforma Java
Inovando na Plataforma JavaInovando na Plataforma Java
Inovando na Plataforma Java
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Introdução ao java
Introdução ao javaIntrodução ao java
Introdução ao java
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011Java no Google App Engine - TDC2011
Java no Google App Engine - TDC2011
 
Imergindo na JVM
Imergindo na JVMImergindo na JVM
Imergindo na JVM
 
NetBeans: a IDE que você precisa
NetBeans: a IDE que você precisaNetBeans: a IDE que você precisa
NetBeans: a IDE que você precisa
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagem
 

O Spring está morto! Viva o Spring!

  • 2. Era uma vez... Havia uma tecnoologia maltida from hell chamada Java EE 1.4. Essa tecnologia tinha um filho chamado EJB 2.1. E o mundo sofreu em dor e ranger de dentes. E ouve morte e desgraça pelo mundo... Precisa mesmo continuar?
  • 6. Tá falando de quem mesmo? É fanboy? Tem fanboismo?
  • 7.  Corre Java EE, corre! ◦ Injeção de dependências. ◦ Anotações ◦ Pojos ◦ Aspectos ◦ Leveza
  • 8.  Java EE não significa mais Java Evil Edition  Java EE faz tudo... ◦ Eu disse TUDO  TUDO MESMO (com negrito, itálico e sublinhado) SIM, TUDO!!!!  ...o que o Spring faz!
  • 10.  Spring é confuso  Spring é uma stack por si só  Java EE 6 já é bom o suficiente  Desenvolvimento Spring é lento  XML, XML, XML!!!  Chapolin ganha do Thor
  • 12.  Spring resolve problemas que Java Eenão resolve ◦ MVC action based ◦ Processamento em lote ◦ Integração ◦ Acesso a dados não relacionais ◦ Implantado em qualquer servidor Java ◦ Big Data
  • 14.  Roo  Security ◦ Security OAuth  Shell  Social ◦ Social Facebook ◦ Social Twitter  Spring Web Flow  Spring Web Services  Flex  Framework  For Apache Hadoop  For Android  HATEOAS  Integration  LDAP  Mobile  AMQP  Batch  Spring Data ◦ JPA ◦ Data Commons ◦ JDBC Extensions ◦ MongoDB ◦ Neo4J ◦ Redis ◦ REST ◦ Solr ◦ GemFire
  • 15.  Anotações  Java Configuration  Spring Expression Language  MVC ◦ Parte do Core  REST  Async  Declarative ◦ Validation ◦ Formatting ◦ Caching ◦ Scheduling  CDI – JSR 330  Beans Validation – JSR 303  Servlet 3.0  Spring Data
  • 16.  Nova casa: http://spring.io ◦ Documentação  Novos guias e tutoriais  Guias mais focados e rápidos de executar  Código „blank‟ inicial e código pronto para verificação ◦ Fóruns ◦ Blogs ◦ Informações sobre cada projeto ◦ Downloads ◦ ETC.
  • 18.  Remoção de pacotes e métodos depreciados  Groovy ◦ BeanBuilder ◦ GenericGroovyApplicationContext  Definição condicional de Beans ◦ @Conditional  Spring Boot  Autowiring com Generics  Hypermedia - HATEOS  Messaging and Websockets
  • 19.  Suporte a Java 8 ◦ IDE  IntelliJ 12  Spring Tool Suite - em fase de preview ◦ Lambda expressions ◦ Method references ◦ JSR-310 DateTime ◦ Repeatable annotations ◦ Parameter name Discovery  Advanced reflection support ◦ Parameter names on interfaces
  • 20.  Suporte a Java EE 7 ◦ JMS 2.0 ◦ JTA 1.2 ◦ JPA 2.1 ◦ Bean Validation 1.1 ◦ JSR 236 - Concurrency
  • 21.  Maior produtividade com Spring Boot ◦ Plataforma de criação rápida de aplicações standalone  Basta rodar  Servidor embutido ◦ Pode criar war convencional ◦ Convenção sobre configuração ◦ Visão mais parcial da plataforma Spring ◦ Foco maior na aplicação e não no overhead  Bibliotecas  Configuração de servidores  Configuração da aplicação
  • 22.  Dados relacionais e tradicionais ◦ *Template ◦ Suporte a JPA ◦ Suporte a Hibernate ◦ JMS e AMPQ message brokers ◦ Suporte melhorado com Java 8  Lambda Expressions
  • 23.  Componente principal: repositório ◦ Repository Design Pattern ◦ Interface implementada em runtime ◦ Convenção sobre Configuração
  • 24.  NoSQL, NewSQL e NOSQL  JPA, Redis, MongoDB, Neo4J, ElasticSearch, S OLR, CouchDB, Riak, ...  Não é uma solução pra tudo  É um guarda chuva
  • 25. // automatically exposes a REST endpoint at /users/* @RestResource (path = "users", rel = "users") public interface UserRepository extends PagingAndSortingRepository { // select * from users where username = ? User findByUsername(@Param("username") String username); // select * from users // where firstName =? or lastName = ? or username = ? List findUsersByFirstNameOrLastNameOrUsername( @Param("firstName") String firstName, @Param("lastName") String lastName, @Param("username") String username ); }
  • 26.  Ecosistema Hadoop passa, hoje, por problemas que já enfrentamos antes ◦ Diversos projetos sendo desenvolvidos independentemente ◦ Integração de frameworks é dolorosa  Spring for Apache Hadoop to the rescue ◦ HBase, Hive, Pig, Cascading e YARN
  • 28.  Framework de integração no estilo descrito em Enterprise Integration Patterns  Sistemas conectados através de channels ◦ Message queues  Diversos adaptadores ◦ FTPS, XMPP, JDBC, SFTP, Hadoop‟s HDFS, Twitter, Splunk, JDBC, JMS, AMQP, Twitter, GemFire, etc…
  • 29.  Processamento de grandes quantidades de dados sequenciais em lote  Baseado na JSR 352: Batch Applications for the Java Platform ◦ Contribuição do Spring  Um job é composto de um ou mais passos  Cada passo contém ◦ Um ou mais ItemReader ◦ Um ou mais ItemProcessor ◦ Um ou mais ItemWriter
  • 31.  Spring Batch + Spring Integration + Esteróides  Sistema de ingestão, processamento, anális e e exportação de dados ◦ Extensível ◦ Unificado ◦ Distribuído  Vem ni mim, BigData!
  • 32.  Spring é uma implementação.  Java EE é uma especificação.  Dependência X Recursos  Contratos e suporte comercial  Skill da equipe  Paixão e fanboismo!
  • 33. Eu só respeito sua opinião porque todo mundo tem o direito de estar errado
  • 34.  O Spring precisa do Java EE assim como Java EE Precisa do Java  Em projetos meus, prefiro usar Spring  Qual dos dois aprender? OS DOIS.  Após anos e anos, vejo que "padronizado" e "novo" nem sempre quer dizer "melhor".
  • 35.  A comunidade Java já mostrou que manter retrocompatibilidade faz parte da cultura Java, que não é uma vantagem oferecida apenas pelo JCP.  Java EE o padrão de direito, mas Spring ainda é o Padrão DE FATO ◦ MAMILOS
  • 36. No pain, No gain. No brain, No pain.
  • 37.  Quanto tempo vai levar até que o Java EE tenha um projeto de framework web action- based?  Quanto tempo até o Spring e Java EE convergirem e Spring se tornar (ou fornecer) uma implementação Java EE?  Estaria a Oracle dominando o JCP, como a Sun fez? Se sim, qual a diferença entre usar Spring e Java EE?
  • 38.  A Oracle tem demonstrado um certo “desrespeito” com os projetos opensource. ◦ Hudson/Jenkins, Open Office, Glasfish... ◦ Será que a longo prazo manterá o Java EE realmente livre?  Spring é proprietário? As implementações Java EE são realmente livres?
  • 39. Podem perguntar o que quiserem. Se eu não responder, existe um motivo pra isso: eu não sei.