O Spring está morto! Viva o Spring!

1.557 visualizações

Publicada em

Palestra que apresentei no UaiJUG techDays 2013.

Publicada em: Software
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.557
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

O Spring está morto! Viva o Spring!

  1. 1. 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?
  2. 2. 2002 2004 2005
  3. 3. Tá falando de quem mesmo? É fanboy? Tem fanboismo?
  4. 4.  Corre Java EE, corre! ◦ Injeção de dependências. ◦ Anotações ◦ Pojos ◦ Aspectos ◦ Leveza
  5. 5.  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!
  6. 6. Spring quer MATAR o Java EE
  7. 7.  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
  8. 8. IÚ TÁ DE BRINCATION UITE ME, CARA?
  9. 9.  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
  10. 10. Spring Java EE
  11. 11.  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
  12. 12.  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
  13. 13.  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.
  14. 14.  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
  15. 15.  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
  16. 16.  Suporte a Java EE 7 ◦ JMS 2.0 ◦ JTA 1.2 ◦ JPA 2.1 ◦ Bean Validation 1.1 ◦ JSR 236 - Concurrency
  17. 17.  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
  18. 18.  Dados relacionais e tradicionais ◦ *Template ◦ Suporte a JPA ◦ Suporte a Hibernate ◦ JMS e AMPQ message brokers ◦ Suporte melhorado com Java 8  Lambda Expressions
  19. 19.  Componente principal: repositório ◦ Repository Design Pattern ◦ Interface implementada em runtime ◦ Convenção sobre Configuração
  20. 20.  NoSQL, NewSQL e NOSQL  JPA, Redis, MongoDB, Neo4J, ElasticSearch, S OLR, CouchDB, Riak, ...  Não é uma solução pra tudo  É um guarda chuva
  21. 21. // 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 ); }
  22. 22.  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
  23. 23.  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…
  24. 24.  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
  25. 25.  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!
  26. 26.  Spring é uma implementação.  Java EE é uma especificação.  Dependência X Recursos  Contratos e suporte comercial  Skill da equipe  Paixão e fanboismo!
  27. 27. Eu só respeito sua opinião porque todo mundo tem o direito de estar errado
  28. 28.  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".
  29. 29.  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
  30. 30. No pain, No gain. No brain, No pain.
  31. 31.  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?
  32. 32.  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?
  33. 33. Podem perguntar o que quiserem. Se eu não responder, existe um motivo pra isso: eu não sei.

×