• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
VIII TechTalk - Spring 3
 

VIII TechTalk - Spring 3

on

  • 241 views

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

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

Statistics

Views

Total Views
241
Views on SlideShare
241
Embed Views
0

Actions

Likes
1
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 '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's cache abstraction

VIII TechTalk - Spring 3 VIII TechTalk - Spring 3 Presentation Transcript

  • 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 via XML e Anotações • Aspectos • Banco de Dados • Configurações • Gerenciamento de Transações • Bla Bla Bla • Chicken • Bla Bla Bla
  • 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 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
  • 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/
  • 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
  • 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
  • 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 Singleton(default), prototype, request, session, global-session (portlets) Spring Beans Bemobi Tech Tal k Dat a: 11/01/2013
  • • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Obrigado! Bemobi Tech Tal k Dat a: 11/01/2013