VIII Bemobi Tech Tal k
Spr i ng 3
Di ego Magal hães 11/ 01/ 2013
Bemobi Tech Tal k
Agenda
Dat a: 11/01/2013
• Spring Framework
• Evolução
• Bla bla Bla
• Chicken
• Beans
• Configurações v...
Bemobi Tech Tal k Dat a: 11/01/2013
Spring Framework
Bemobi Tech Tal k Dat a: 11/01/2013
Visão geral – versão 3.2.x
Spring Framework
• Primeira versão milestone version em 200...
Bemobi Tech Tal k Dat a: 11/01/2013
Evolução do framework
Adaptado de http://www.flickr.com/photos/mraible/4378559350/size...
Adoção (Top 20 frameworks na JVM)
Di gi t e o nome do Proj et o Dat a:
Pesquisa InfoQ de Out/2012 - http://www.infoq.com/r...
Bemobi Tech Tal k
Spring Beans
Dat a: 11/01/2013
• Apesar do termo “bean” ou “java bean”, não há relação com as JSR
220/27...
Spring Beans
Bemobi Tech Tal k Dat a: 11/01/2013
• Criados por xml com <bean id=“goku”>
• Via código com @Bean em um método que retorne uma instância de
“Heroi”
• Escopos ...
• Implementação da JSR 250 – Métodos para @PostContruct e
@PreDestroy
Spring Beans – Ciclo de Vida
Todas as fases do ciclo...
Aspectos
• Ainda que DI nos deixe amarrar nossos componentes de maneira
desacoplada, aspectos nos deixam capturar funciona...
Container
• Dois tipos distintos: Bean Factory e Application Contexts
• Usa-se Application Context, uma vez que são mais c...
Minimizando o uso de XML
• Autowiring em quatro opções: byName, byType, ConstructorBased,
autoDetect (tenta CB e byType re...
Spring e acesso a Banco de Dados
• A partir do Spring 3, temos suporte ao Hibernate 4
• JPA sem persistence.xml
• JDBC com...
Gerenciando Transações
• Suporte a JDBC, JPA e JTA
• Um transactionManager para cada tipo de acesso a dados (JDBC, JPA,
JM...
Usando Spring MVC
• Controllers são POJO’s
• XML ou anotações
• Diferentes ViewResolvers para diferentes saidas (xml, wap,...
WebFlow
• Somente via XML
• Cria fluxos de UI em MVC, JSF etc
• Adiciona escopo de conversação
• Caso o processo seja apen...
Segurança
• Feito através do módulo Spring Security
• Oito módulos: ACL, CAS, Configuration, Core, LDAP, OpenID, Web e Tag...
E mais:
• Chamadas remotas com RMI, HTTP, JAX-WS e JAX-RS
• REST através do Spring MVC com anotações de
@RequestMapping, @...
Obrigado!
Bemobi Tech Tal k Dat a: 11/01/2013
Upcoming SlideShare
Loading in …5
×

VIII TechTalk - Spring 3

317 views

Published on

Visão geral sobre Spring 3 para os desenvolvedores da BeMobi.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
317
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 2000 - J2SE v1.3 , J2EE v1.2.1  EJB 2  = - difficult deployment descriptors , - difficult testing , - lot of redundant artifacts 2001 - J2SE v1.3 2003 - J2SE v1.4, J2EE v1.4 2004 - Spring v1.0 First Spring Framework - dependency injection (IoP), - competitor to J2EE 2006 - J2SE v5, Java EE v5, Spring v2.0, Java EE 5 (EJB 3.0) - a lot of functions inspired by Spring , - elimination of component, home and remote interfaces 2007 - Spring v2.5 Full Java 6 and Java EE 5 support (JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0), Full-featured annotation-driven dependency injection, including support for &apos;qualifiers‘ 2009 - Java SE v6, Java EE v6, Spring v3.0, Java EE 6 (EJB 3.1)  = - interfaces are optional , - singleton beans , - cron-like scheduling , - embeddable containers , Spring 3.0 = - Spring Expression Language , - MVC-Framework with improved REST support 2011 - Java SE v 7, Spring v 3.1 = Cache Abstraction, Bean Profiles, Configuration Anotations Environment absctracton, Suporte HIB 4, JPA Persistence sem o persistence.xml 2012 – Spring 3.2 goes GA = Refined Java SE 7 support  , *  Concurrency refinements across the framework , avoiding the use of synchronization wherever possible – in particular for scoped/prototype beans * Allowing for  @Autowired and @Value to be used as meta-annotations , e.g. to build custom injection annotations in combination with specific qualifiers * Support for  custom @Bean definition annotations in @Configuration classes , e.g. in combination with specific qualifiers, @Lazy, @Primary, etc * Support for  loading WebApplicationContexts in the TestContext framework , and further improvements for web application testing * Early support for  JCache 0.5 (JSR-107)  as a backend for Spring&apos;s cache abstraction
  • VIII TechTalk - Spring 3

    1. 1. VIII Bemobi Tech Tal k Spr i ng 3 Di ego Magal hães 11/ 01/ 2013
    2. 2. Bemobi Tech Tal k Agenda Dat a: 11/01/2013 • Spring Framework • Evolução • Bla bla Bla • Chicken • Beans • Configurações via XML e Anotações • Aspectos • Banco de Dados • Configurações • Gerenciamento de Transações • Bla Bla Bla • Chicken • Bla Bla Bla
    3. 3. Bemobi Tech Tal k Dat a: 11/01/2013 Spring Framework
    4. 4. Bemobi Tech Tal k Dat a: 11/01/2013 Visão geral – versão 3.2.x Spring Framework • Primeira versão milestone version em 2004 • Módulos: • Container IoC • Aspectos • Acesso a Dados • Controle de Transações • MVC • Convention over Configuration • Batch • Integração entre sistemas • Autenticação e Autorização • JMX • Messaging • Testes
    5. 5. Bemobi Tech Tal k Dat a: 11/01/2013 Evolução do framework Adaptado de http://www.flickr.com/photos/mraible/4378559350/sizes/o/in/photostream/
    6. 6. Adoção (Top 20 frameworks na JVM) Di gi t e o nome do Proj et o Dat a: Pesquisa InfoQ de Out/2012 - http://www.infoq.com/research/jvm-web-frameworks
    7. 7. Bemobi Tech Tal k Spring Beans Dat a: 11/01/2013 • Apesar do termo “bean” ou “java bean”, não há relação com as JSR 220/273/345 e são apenas definições de componentes • POJOs
    8. 8. Spring Beans Bemobi Tech Tal k Dat a: 11/01/2013
    9. 9. • Criados por xml com <bean id=“goku”> • Via código com @Bean em um método que retorne uma instância de “Heroi” • Escopos Singleton(default), prototype, request, session, global-session (portlets) Spring Beans Bemobi Tech Tal k Dat a: 11/01/2013
    10. 10. • Implementação da JSR 250 – Métodos para @PostContruct e @PreDestroy Spring Beans – Ciclo de Vida Todas as fases do ciclo de vida de um bean Bemobi Tech Tal k Dat a: 11/01/2013
    11. 11. Aspectos • Ainda que DI nos deixe amarrar nossos componentes de maneira desacoplada, aspectos nos deixam capturar funcionalidades que são usadas por todos os componentes da aplicação • Evita duplicação de código e elimina boa parte de bolierplate codding Funcionalidades como logging, segurança e gerenciamento de transações são exemplos para aspectos Bemobi Tech Tal k Dat a: 11/01/2013
    12. 12. Container • Dois tipos distintos: Bean Factory e Application Contexts • Usa-se Application Context, uma vez que são mais completos e contém abstrações para mensagens de texto, publicação de eventos etc. Container Spring, responsável por criar, relacionar e gerenciar nossos beans Bemobi Tech Tal k Dat a: 11/01/2013
    13. 13. Minimizando o uso de XML • Autowiring em quatro opções: byName, byType, ConstructorBased, autoDetect (tenta CB e byType respectivamente) • Três anotações: @Autowired e @Inject (JSR 330) e @Resource (JSR 250) • Beans de mesmo tipo? Use @Qualifier (autowired) e @Name (inject) • @Inject pode injetar Providers, factory methods que só devolvem a instância ao ter o método GET chamado • Auto discovery via <context:component-scan> ou @ComponentScan (Spring 3.1+) Bemobi Tech Tal k Dat a: 11/01/2013
    14. 14. Spring e acesso a Banco de Dados • A partir do Spring 3, temos suporte ao Hibernate 4 • JPA sem persistence.xml • JDBC com JDBCTemplate • DAO e Repositories, filosofia Spring de acesso a dados (Spring Data) • Exceções independentes de plataforma (CannotAcquireLockException , CannotSerializeTransactionException, CleanupFailureDataAccessException, ConcurrencyFailureException DataAccessException, DataAccessResourceFailureException DataIntegrityViolationException, DataRetrievalFailureException DeadlockLoserDataAccessException …) • DataSource e Pooling Bemobi Tech Tal k Dat a: 11/01/2013
    15. 15. Gerenciando Transações • Suporte a JDBC, JPA e JTA • Um transactionManager para cada tipo de acesso a dados (JDBC, JPA, JMS etc) • Via XML com <tx:advice id="txAdvice"> ou @Transactional • Para uso das anotações basta usar <tx:annotation-driven /> ou @EnableTransactionManagement Bemobi Tech Tal k Dat a: 11/01/2013
    16. 16. Usando Spring MVC • Controllers são POJO’s • XML ou anotações • Diferentes ViewResolvers para diferentes saidas (xml, wap, web, pdf etc) • HandlerMapping ajuda a escolher qual controle será acionado (perfeito para decisões de device no nosso caso) Bemobi Tech Tal k Dat a: 11/01/2013 Passos pelo qual um request é submetido até que o response seja entregue ao usuário
    17. 17. WebFlow • Somente via XML • Cria fluxos de UI em MVC, JSF etc • Adiciona escopo de conversação • Caso o processo seja apenas procedural não envolvendo UI, usar o commons-chains da apache (vide Subscription Novo) Bemobi Tech Tal k Dat a: 11/01/2013
    18. 18. Segurança • Feito através do módulo Spring Security • Oito módulos: ACL, CAS, Configuration, Core, LDAP, OpenID, Web e Tag Libs • ServletFilter org.springframework.web.filter.DelegatingFilterProxy • Sete tipos de autenticação prontos: em memória, JDBC, LDAP, OpenID, CAS, X.509 e JAAS providers • Anotações @Secured (Spring) ou da JSR-250 @RolesAllowed (para isso, devemos usar <global-method-security jsr250- annotations="enabled" /> ) Bemobi Tech Tal k Dat a: 11/01/2013
    19. 19. E mais: • Chamadas remotas com RMI, HTTP, JAX-WS e JAX-RS • REST através do Spring MVC com anotações de @RequestMapping, @ResponseStatus • Desenvolvimento JMS com POJO’s e implementações de conectores para os principais serviços de mensageria • Acesso aos beans do Spring via JMX usando apenas @ManagedResource e @ManagedAttribute • Abstração de variáveis de ambientes e properties através do Environment • Perfis de beans (DEV, PROD) • Suporte a JSR-107 – JCache • Suporte a JSR-349 – Bean Validation Bemobi Tech Tal k Dat a: 11/01/2013
    20. 20. Obrigado! Bemobi Tech Tal k Dat a: 11/01/2013

    ×