o spring está morto! viva o spring!
DESCRIPTION
Palestra que apresentei no UaiJUG techDays 2013.TRANSCRIPT
![Page 1: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/1.jpg)
O Spring está morto!
Viva o Spring!
![Page 2: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/2.jpg)
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?
![Page 3: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/3.jpg)
![Page 4: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/4.jpg)
2002 2004 2005
![Page 5: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/5.jpg)
![Page 6: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/6.jpg)
Tá falando de quem mesmo?
É fanboy? Tem fanboismo?
Críticas atuais ao Java EE
![Page 7: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/7.jpg)
Corre Java EE, corre!◦ Injeção de dependências.◦ Anotações◦ Pojos◦ Aspectos◦ Leveza
Spring pressiona o Java EE
![Page 8: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/8.jpg)
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 X Java EE
![Page 9: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/9.jpg)
Spring quer
MATAR o Java EE
Spring X Java EE
![Page 10: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/10.jpg)
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
Spring X Java EE
![Page 11: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/11.jpg)
IÚ TÁ DE BRINCATION
UITE ME, CARA?
![Page 12: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/12.jpg)
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
Porque usar Spring?
![Page 13: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/13.jpg)
Spring Java EE
Spring + Java EE!
![Page 14: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/14.jpg)
Roo Security
◦ Security OAuth Shell Social
◦ Social Facebook◦ Social Twitter
Spring Web Flow Spring Web
Services
Spring Hoje
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
![Page 15: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/15.jpg)
Spring Hoje 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
![Page 16: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/16.jpg)
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.
Back to the Future!
![Page 17: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/17.jpg)
Spring IO
![Page 18: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/18.jpg)
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
Spring 4
![Page 19: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/19.jpg)
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
Spring 4
![Page 20: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/20.jpg)
Suporte a Java EE 7◦ JMS 2.0◦ JTA 1.2◦ JPA 2.1◦ Bean Validation 1.1◦ JSR 236 - Concurrency
Spring 4
![Page 21: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/21.jpg)
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
Spring Boot
![Page 22: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/22.jpg)
Dados relacionais e tradicionais◦ *Template◦ Suporte a JPA◦ Suporte a Hibernate◦ JMS e AMPQ message brokers◦ Suporte melhorado com Java 8
Lambda Expressions
Suporte a Dados
![Page 23: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/23.jpg)
Componente principal: repositório◦ Repository Design Pattern ◦ Interface implementada em runtime◦ Convenção sobre Configuração
Macumba de Camponês Jedi from Hell
com Spring Data
![Page 24: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/24.jpg)
NoSQL, NewSQL e NOSQL JPA, Redis, MongoDB, Neo4J, ElasticSearch,
SOLR, CouchDB, Riak, ... Não é uma solução pra tudo É um guarda chuva
Macumba de Camponês Jedi from Hell
com Spring Data
![Page 25: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/25.jpg)
// 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 );}
Macumba de Camponês Jedi from Hell
com Spring Data
![Page 26: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/26.jpg)
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
Big Data e Hadoop
![Page 27: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/27.jpg)
Big Data e Hadoop
![Page 28: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/28.jpg)
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…
Spring Integration
![Page 29: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/29.jpg)
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
Spring Batch
![Page 30: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/30.jpg)
Spring Batch
![Page 31: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/31.jpg)
Spring Batch + Spring Integration + Esteróides
Sistema de ingestão, processamento, análise e exportação de dados◦ Extensível◦ Unificado ◦ Distribuído
Vem ni mim, BigData!
Spring XD
![Page 32: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/32.jpg)
Spring é uma implementação. Java EE é uma especificação. Dependência X Recursos Contratos e suporte comercial Skill da equipe Paixão e fanboismo!
Como escolher?
![Page 33: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/33.jpg)
Opiniões fecais pessoais
Eu só respeito sua opinião porque todo mundo tem o direito de estar errado
![Page 34: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/34.jpg)
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".
Opinatividade Defecativa
![Page 35: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/35.jpg)
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
Opinatividade Defecativa
![Page 36: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/36.jpg)
Perguntamentos questionativos
No pain, No gain. No brain, No pain.
![Page 37: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/37.jpg)
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?
Perguntamentos questionativos
![Page 38: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/38.jpg)
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?
Perguntamentos questionativos
![Page 39: O Spring está morto! Viva o Spring!](https://reader036.vdocuments.site/reader036/viewer/2022062303/556457aed8b42a682d8b5642/html5/thumbnails/39.jpg)
Perguntação plateiativa
Podem perguntar o que quiserem. Se eu não responder, existe um motivo pra isso: eu não
sei.