O Spring está morto! Viva o Spring!

39
O Spring está morto! Viva o Spring!

description

Palestra que apresentei no UaiJUG techDays 2013.

Transcript of O Spring está morto! Viva o Spring!

Page 1: O Spring está morto! Viva o Spring!

O Spring está morto!

Viva o Spring!

Page 2: 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?

Page 3: O Spring está morto! Viva o Spring!
Page 4: O Spring está morto! Viva o Spring!

2002 2004 2005

Page 5: O Spring está morto! Viva o Spring!
Page 6: O Spring está morto! Viva o Spring!

Tá falando de quem mesmo?

É fanboy? Tem fanboismo?

Críticas atuais ao Java EE

Page 7: O Spring está morto! Viva o Spring!

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!

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!

Spring quer

MATAR o Java EE

Spring X Java EE

Page 10: O Spring está morto! Viva o Spring!

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!

IÚ TÁ DE BRINCATION

UITE ME, CARA?

Page 12: O Spring está morto! Viva o Spring!

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!

Spring Java EE

Spring + Java EE!

Page 14: O Spring está morto! Viva o Spring!

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!

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!

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!

Spring IO

Page 18: 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

Spring 4

Page 19: O Spring está morto! Viva o Spring!

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!

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!

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!

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!

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!

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!

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

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!

Big Data e Hadoop

Page 28: 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…

Spring Integration

Page 29: O Spring está morto! Viva o Spring!

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!

Spring Batch

Page 31: O Spring está morto! Viva o Spring!

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!

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!

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!

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!

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!

Perguntamentos questionativos

No pain, No gain. No brain, No pain.

Page 37: O Spring está morto! Viva o Spring!

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!

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!

Perguntação plateiativa

Podem perguntar o que quiserem. Se eu não responder, existe um motivo pra isso: eu não

sei.