View
650
Download
6
Embed Size (px)
DESCRIPTION
Palestra que apresentei no UaiJUG techDays 2013.
Citation preview
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?
2002 2004 2005
Tá falando de quem mesmo?
É fanboy? Tem fanboismo?
Críticas atuais ao Java EE
Corre Java EE, corre!◦ Injeção de dependências.◦ Anotações◦ Pojos◦ Aspectos◦ Leveza
Spring pressiona o Java EE
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
Spring quer
MATAR o Java EE
Spring X 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
Spring X Java EE
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
Porque usar Spring?
Spring Java EE
Spring + Java EE!
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
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
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!
Spring IO
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
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
Suporte a Java EE 7◦ JMS 2.0◦ JTA 1.2◦ JPA 2.1◦ Bean Validation 1.1◦ JSR 236 - Concurrency
Spring 4
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
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
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
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
// 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
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
Big Data e Hadoop
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
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
Spring Batch
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
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?
Opiniões fecais pessoais
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".
Opinatividade Defecativa
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
Perguntamentos questionativos
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?
Perguntamentos questionativos
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
Perguntação plateiativa
Podem perguntar o que quiserem. Se eu não responder, existe um motivo pra isso: eu não
sei.