SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

PPTX
ASP.NET Core 2.1 #dotnetconf
PPTX
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
PDF
MVC na plataforma JEE
PDF
Apresentação hotspot
PPTX
Desenvolvimento web com .NET Core - Meetup São Carlos
PPT
Bea Weblogic - features
PPT
Zk Framework
PPTX
MVP Week 2020 - Aplicações Modernas com Blazor WASM
ASP.NET Core 2.1 #dotnetconf
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
MVC na plataforma JEE
Apresentação hotspot
Desenvolvimento web com .NET Core - Meetup São Carlos
Bea Weblogic - features
Zk Framework
MVP Week 2020 - Aplicações Modernas com Blazor WASM

Mais procurados (20)

PPTX
ASP.NET MVC
PDF
Começando com meteor
PPTX
O Futuro do ASP.NET
KEY
Web Services
PDF
TDC2016SP - Trilha Frameworks JavaScript
PDF
GUJavaSC - Mini-curso Java EE
PPTX
Campus Party 2014 - Desenvolvimento Web com ASP.NET
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
PPTX
ASP.NET 5, MVC 6 e além
PDF
WSO2 Application Server como Alternativa ao Tomcat
PPSX
Comunicação em Tempo Real com ASP.Net SignalR
PPTX
Desenvolvimento para web com Meteor
PPTX
Play Framework
PDF
Meteor - TechParty 2015
PPTX
Introdução aos Conceitos do WSO2 ESB
PDF
Spring Security e Spring Boot Aula - 2018
PDF
Desenvolvimento Web com JSF
PPTX
Brutos Framework (Java WEB MVC)
PPT
Spring Capitulo 01
PPTX
Novidades do ASP.NET 5.X
ASP.NET MVC
Começando com meteor
O Futuro do ASP.NET
Web Services
TDC2016SP - Trilha Frameworks JavaScript
GUJavaSC - Mini-curso Java EE
Campus Party 2014 - Desenvolvimento Web com ASP.NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5, MVC 6 e além
WSO2 Application Server como Alternativa ao Tomcat
Comunicação em Tempo Real com ASP.Net SignalR
Desenvolvimento para web com Meteor
Play Framework
Meteor - TechParty 2015
Introdução aos Conceitos do WSO2 ESB
Spring Security e Spring Boot Aula - 2018
Desenvolvimento Web com JSF
Brutos Framework (Java WEB MVC)
Spring Capitulo 01
Novidades do ASP.NET 5.X
Anúncio

Destaque (11)

PDF
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
PPTX
O framework spring
PPTX
Conceitos de Java Web
PPT
Spring Web Flow
PDF
3way curso-formacao-java-web-completo
PDF
Integracao Seam Spring
PDF
Apostila Java Web com JSF, JPA e Primefaces
PPT
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
PDF
SPRING 5.1.2 PASSO A PASSO: APLICAÇÕES PRÁTICAS
PPTX
Jsf com hibernate, spring security e maven
PDF
Framework web 3 - JSF + Spring boot
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
O framework spring
Conceitos de Java Web
Spring Web Flow
3way curso-formacao-java-web-completo
Integracao Seam Spring
Apostila Java Web com JSF, JPA e Primefaces
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
SPRING 5.1.2 PASSO A PASSO: APLICAÇÕES PRÁTICAS
Jsf com hibernate, spring security e maven
Framework web 3 - JSF + Spring boot
Anúncio

Semelhante a VIII TechTalk - Spring 3 (20)

PDF
Spring: Overview do framework mais popular para desenvolvimento em Java
PDF
Java web
PPTX
O Spring está morto! Viva o Spring!
PPS
Spring Framework
PDF
Java: Por onde começar nos dias de hoje?
PDF
Aumente sua produtividade com Spring Boot
PDF
Curso de Java (Parte 7) Web Application
PDF
Spring framework 2.0 pt_BR
PDF
Algaworks livro-spring-boot-v3.0
PDF
Spring boot
PDF
Framework web 01 - Aula UTFPR 2018
PDF
Como escolher o Framework Java para web?
PDF
JSF com Primefaces
PDF
TDC2011: Spring Mobile
PDF
GUJavaSC - Combinando AngularJS com Java EE
PDF
Conhecendo o Spring
PPT
API Apontador
PPTX
Arquitetura do Framework Spring
PDF
QCon 2015 - Combinando AngularJS com Java EE
KEY
Spring MVC - QConSP
Spring: Overview do framework mais popular para desenvolvimento em Java
Java web
O Spring está morto! Viva o Spring!
Spring Framework
Java: Por onde começar nos dias de hoje?
Aumente sua produtividade com Spring Boot
Curso de Java (Parte 7) Web Application
Spring framework 2.0 pt_BR
Algaworks livro-spring-boot-v3.0
Spring boot
Framework web 01 - Aula UTFPR 2018
Como escolher o Framework Java para web?
JSF com Primefaces
TDC2011: Spring Mobile
GUJavaSC - Combinando AngularJS com Java EE
Conhecendo o Spring
API Apontador
Arquitetura do Framework Spring
QCon 2015 - Combinando AngularJS com Java EE
Spring MVC - QConSP

Mais de Diego Magalhães (7)

PDF
Evento CODERS
PPT
X Bemobi Tech Talk - Maven
PDF
II Bemobi Tech Talk - NoSQL
PPTX
Comprafacil - Mobile Case
ODP
Java Messaging Service
PPTX
Botnet: Uma visao geral
PPT
Fowarder Receiver Pattern
Evento CODERS
X Bemobi Tech Talk - Maven
II Bemobi Tech Talk - NoSQL
Comprafacil - Mobile Case
Java Messaging Service
Botnet: Uma visao geral
Fowarder Receiver Pattern

Último (11)

PDF
Manejo integrado de pragas na cultura do algodão
PDF
Jira Software projetos completos com scrum
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Utilizando code blockes por andre backes
PPTX
Tipos de servidor em redes de computador.pptx
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Manejo integrado de pragas na cultura do algodão
Jira Software projetos completos com scrum
Viasol Energia Solar -Soluções para geração e economia de energia
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Utilizando code blockes por andre backes
Tipos de servidor em redes de computador.pptx
Conceitos básicos de Redes Neurais Artificiais
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf

VIII TechTalk - Spring 3

  • 1. VIII Bemobi Tech Tal k Spr i ng 3 Di ego Magal hães 11/ 01/ 2013
  • 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. Bemobi Tech Tal k Dat a: 11/01/2013 Spring Framework
  • 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. 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. 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. 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. Spring Beans Bemobi Tech Tal k Dat a: 11/01/2013
  • 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. • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Obrigado! Bemobi Tech Tal k Dat a: 11/01/2013

Notas do Editor

  • #6: 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