O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

VIII TechTalk - Spring 3

342 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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

×