SlideShare uma empresa Scribd logo
Universidade Federal do Ceará 
Engenharia de Software – Projeto Detalhado de Software 2014.2
Motivação 
 Problemas Essências 
 Problemas da própria Orientação a Objetos 
 Auto Acoplamento e como injetar dependências 
 Problemas Específicos 
 Problemas da plataforma Java 
 A Sun “empurrou” os EJBs para os desenvolvedores
Alto Acoplamento 
 Como lidar com o alto acoplamento de forma que o objeto cliente não 
dependa diretamente da implementação do objeto serviço?
Inversão de Dependências 
 Inverta as Dependências e faça com que classes dependam de interfaces 
(contratos de métodos).
Inversão de Dependências 
 O acoplamento realmente melhorou? 
 Não! Então como usar a Inversão de Dependências efetivamente?
IoC/DI Inversão de Controle e 
Injeção de Dependências 
 Delegue a responsabilidade de criação de objetos a outra parte do sistema 
 Injete as Dependências com um container 
 Encapsule a responsabilidade de criar objetos em um único local
Programação Orientada a Aspectos(AOP) 
 O AOP diminui ainda mais o acoplamento onde a orientação a objetos não 
consegue chegar 
 Existem comportamentos que aparecem por toda a aplicação que não estão 
necessariamente relacionados a lógica de negócio 
 Esses comportamentos podem gerar repetição e são chamados de Aspectos 
 Após a identificação e isolamento dos Aspectos o AOP precisa interceptar a 
execução de métodos em que existe a necessidade de incluir um desses 
comportamentos
Java Enterprise Edition (Java EE) 
 A Sun criou seu próprio padrão para implementação de lógica de negócios, os 
Enterprise Java Beans (EJBs), e “empurrou-os” para os desenvolvedores. 
 Em meados de 2004 a plataforma Java EE era muito distinta da atual. Os EJBs 
tinham problemas : 
 Não podiam ser executadas fora de um container de aplicação, o que dificultava os 
testes - desenvolvimento orientada a testes estava se tornando popular na época 
 Eram complexos e muitos desenvolvedores subutilizavam de seus recursos 
 O container EJB é intrusivo, ou seja, os objetos dependem da(s) biblioteca(s) do 
container EJB por interfaces ou anotações.
Surgimento do Spring 
 Começou a surgir com a publicação do livro Expert One-To-One J2EE Design 
and Development de Rod Johnson que criticava os EJBs 
 O Spring surgiu com o intuito de minimizar os problemas apresentados 
(essenciais e específicos) oferecendo um container alternativo ao container 
EJB 
 Spring é resultado de IoC (Inversão de Controle) + DI (Injeção de 
Dependências) + AOP (Programação Orientada a Aspectos)
Vantagens do Spring 
 O container Spring é não intrusivo 
 Facilidade para se escrever testes 
 Container independente de ambiente, não necessita de servidor de aplicação 
 Facilidade para reuso de código
Core Container – O núcleo do Spring 
 As classes básicas estão no módulo Core, onde 
estão implementadas as funcionalidades de 
reflexão, tratamento de strings etc 
 Expression Language é responsável pelo 
processamento das configurações do Spring, seja 
em xml, anotações ou por código 
 No Beans se encontra o BeanFactory, a primeira 
versão do container 
 Finalmente, no módulo Context está localizada 
a implementação mais avançada do container e 
recomendada pela Spring Source, a Application 
Context
Conceitos do Spring 
 Bean : É todo objeto gerenciado pelo container do Spring 
 Na declaração do Bean é indicada a classe a ser injetada. Existem dois tipos 
de injeção: por métodos setter ou por construtor 
 Exemplo de declaração de bean usando xml :
Conceitos do Spring 
 A instanciação de um objeto pode ser complexa e assim necessitar de fábricas 
ou builders. No Spring pode-se definir que um bean será instanciado por um 
deles. 
 Além disso há a possibilidade de mapear objetos complexos como listas, 
mapas, properties etc
Usando o Container 
 Como pegar instâncias dos Beans? 
 Primeiramente é necessário iniciar o container com as definições de Beans 
 Depois disso é só “pegar” os Beans
Componentes do Spring 
 Basicamente o Spring possui tudo que uma aplicação corporativa precisa, e todos 
os seus componentes são baseados no seu container
Um pouco de Spring MVC 
 Servlets adicionam muito código repetitivo a aplicação e é necessário lidar 
diretamente com objetos de requisição e resposta 
 Parâmetros de requisição são recebidos como strings e é necessário fazer 
várias conversões para montar um objeto de modelo 
 Não existe um único ponto de entrada para requisições 
 Modularizar o código se torna difícil 
 O Spring MVC facilita tudo isso e junto com outros módulos do framework tem 
grande poder para aplicações corporativas
Um pouco de Spring MVC 
 Depois da criação do container do Spring, a Spring Source percebeu a 
oportunidade de criar um framework MVC para aplicações WEB 
 A base do Spring MVC, como o próprio nome já diz, é o padrão de arquitetura 
MVC e uso do padrão Front Controller 
 O MVC nos permite isolar a camada de negócios (modelo) da de visualização 
através de uma cadama intermediária, o Controlador. 
 O Front Controller intercepta todas as requisições para direcionar ao Controlador 
adequado 
Controlador no Spring Framework
Exemplo de Spring MVC 
Controlador 
View mapeada para pasta WEB-INF/view/helloWorld.html
Referências Bibliográficas 
 Professor Camilo Camilo Almendra 
 camilo@es.ufc.br 
 Alunos : 
 Alexsandro Oliveira Alexandrino 
 sandrooliveira1501@gmail.com 
 Cayk Lima Barreto 
 cayk-lima@hotmail.com 
 Guia oficial Spring: 
http://docs.spring.io/spring/docs/4.1.2 
.BUILD-SNAPSHOT/spring-framework-reference/ 
htmlsingle/#overview 
 FLOWER, Martin, Inversion of Control 
Containers and the Dependency 
Injection pattern. Disponível em : 
http://www.martinfowler.com/articles 
/injection.html 
 Rod Johnson. Expert One-To-One J2EE 
Development Without EJB. Wrox 
Press,2004. 
 Lobo, Henrique. Vire o Jogo com Spring 
Framework. Casa do Código.

Mais conteúdo relacionado

Mais procurados

Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
Shravan A
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
Natanael Fonseca
 
Spring Boot
Spring BootSpring Boot
Spring Boot
HongSeong Jeon
 
React & Redux
React & ReduxReact & Redux
React & Redux
Federico Bond
 
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Arjun Thakur
 
NestJS
NestJSNestJS
NestJS
Wilson Su
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
MicroPyramid .
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
Guo Albert
 
Spring framework Introduction
Spring framework IntroductionSpring framework Introduction
Spring framework Introduction
Anuj Singh Rajput
 
An Introduction to Redux
An Introduction to ReduxAn Introduction to Redux
An Introduction to Redux
NexThoughts Technologies
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBC
Luiz Ricardo Silva
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Dom Digital
 
ASP.NET MVC.
ASP.NET MVC.ASP.NET MVC.
ASP.NET MVC.
Ni
 
Solid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJSSolid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJS
Rafael Casuso Romate
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
Mindfire Solutions
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
Moacir Jóse Ferreira Junior Ferreira
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
elliando dias
 
Getting started with entity framework
Getting started with entity framework Getting started with entity framework
Getting started with entity framework
Lushanthan Sivaneasharajah
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
Helder da Rocha
 

Mais procurados (20)

Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
 
Introdução ao Spring Framework
Introdução ao Spring FrameworkIntrodução ao Spring Framework
Introdução ao Spring Framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
React & Redux
React & ReduxReact & Redux
React & Redux
 
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
 
NestJS
NestJSNestJS
NestJS
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
 
Spring framework Introduction
Spring framework IntroductionSpring framework Introduction
Spring framework Introduction
 
An Introduction to Redux
An Introduction to ReduxAn Introduction to Redux
An Introduction to Redux
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBC
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticos
 
ASP.NET MVC.
ASP.NET MVC.ASP.NET MVC.
ASP.NET MVC.
 
Solid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJSSolid NodeJS with TypeScript, Jest & NestJS
Solid NodeJS with TypeScript, Jest & NestJS
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Getting started with entity framework
Getting started with entity framework Getting started with entity framework
Getting started with entity framework
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 

Destaque

Two day-long training on "DSpace" Institutional Repository
Two day-long training on "DSpace" Institutional RepositoryTwo day-long training on "DSpace" Institutional Repository
Two day-long training on "DSpace" Institutional Repository
Nur Ahammad
 
Notação BPMN v. 1.2
Notação BPMN v. 1.2Notação BPMN v. 1.2
Notação BPMN v. 1.2
Rildo (@rildosan) Santos
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
Pablo Souza
 
#Aprender3C - Repositorios Digitales con Dspace
#Aprender3C - Repositorios Digitales con Dspace#Aprender3C - Repositorios Digitales con Dspace
#Aprender3C - Repositorios Digitales con Dspace
Aprender 3C
 
Documentação de Processos de Negócio
Documentação de Processos de NegócioDocumentação de Processos de Negócio
Documentação de Processos de Negócio
Rildo (@rildosan) Santos
 
Gestão por Processo
Gestão por ProcessoGestão por Processo
Gestão por Processo
Rildo (@rildosan) Santos
 

Destaque (6)

Two day-long training on "DSpace" Institutional Repository
Two day-long training on "DSpace" Institutional RepositoryTwo day-long training on "DSpace" Institutional Repository
Two day-long training on "DSpace" Institutional Repository
 
Notação BPMN v. 1.2
Notação BPMN v. 1.2Notação BPMN v. 1.2
Notação BPMN v. 1.2
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
#Aprender3C - Repositorios Digitales con Dspace
#Aprender3C - Repositorios Digitales con Dspace#Aprender3C - Repositorios Digitales con Dspace
#Aprender3C - Repositorios Digitales con Dspace
 
Documentação de Processos de Negócio
Documentação de Processos de NegócioDocumentação de Processos de Negócio
Documentação de Processos de Negócio
 
Gestão por Processo
Gestão por ProcessoGestão por Processo
Gestão por Processo
 

Semelhante a Arquitetura do Framework Spring

Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Fernando Godóy
 
1409243945064
14092439450641409243945064
1409243945064
Fábio Junior
 
Como utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicaçõesComo utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicações
lehsantoslucena
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
Michael Costa
 
Asp net mvc
Asp net mvcAsp net mvc
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Getúlio Strapazzon
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
Rafael Ponte
 
Jsf
JsfJsf
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
Mario Sergio
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
jornaljava
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
Wende Mendes
 
J2EE Na Vida Real
J2EE Na Vida RealJ2EE Na Vida Real
J2EE Na Vida Real
elliando dias
 
Conhecendo o Spring
Conhecendo o SpringConhecendo o Spring
Conhecendo o Spring
Maurício Linhares
 
EJB
EJBEJB
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
Benicio Ávila
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Aluisio Junior
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Ana Albert
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
bielgott
 
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
Leandro Daniel
 
Parte 1 Introducao
Parte 1 IntroducaoParte 1 Introducao
Parte 1 Introducao
guest7ff4e2
 

Semelhante a Arquitetura do Framework Spring (20)

Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring ...
 
1409243945064
14092439450641409243945064
1409243945064
 
Como utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicaçõesComo utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicações
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Jsf
JsfJsf
Jsf
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
J2EE Na Vida Real
J2EE Na Vida RealJ2EE Na Vida Real
J2EE Na Vida Real
 
Conhecendo o Spring
Conhecendo o SpringConhecendo o Spring
Conhecendo o Spring
 
EJB
EJBEJB
EJB
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
DNAD 2009 - Injeção de Dependência (por Leandro Daniel)
 
Parte 1 Introducao
Parte 1 IntroducaoParte 1 Introducao
Parte 1 Introducao
 

Arquitetura do Framework Spring

  • 1. Universidade Federal do Ceará Engenharia de Software – Projeto Detalhado de Software 2014.2
  • 2. Motivação  Problemas Essências  Problemas da própria Orientação a Objetos  Auto Acoplamento e como injetar dependências  Problemas Específicos  Problemas da plataforma Java  A Sun “empurrou” os EJBs para os desenvolvedores
  • 3. Alto Acoplamento  Como lidar com o alto acoplamento de forma que o objeto cliente não dependa diretamente da implementação do objeto serviço?
  • 4. Inversão de Dependências  Inverta as Dependências e faça com que classes dependam de interfaces (contratos de métodos).
  • 5. Inversão de Dependências  O acoplamento realmente melhorou?  Não! Então como usar a Inversão de Dependências efetivamente?
  • 6. IoC/DI Inversão de Controle e Injeção de Dependências  Delegue a responsabilidade de criação de objetos a outra parte do sistema  Injete as Dependências com um container  Encapsule a responsabilidade de criar objetos em um único local
  • 7. Programação Orientada a Aspectos(AOP)  O AOP diminui ainda mais o acoplamento onde a orientação a objetos não consegue chegar  Existem comportamentos que aparecem por toda a aplicação que não estão necessariamente relacionados a lógica de negócio  Esses comportamentos podem gerar repetição e são chamados de Aspectos  Após a identificação e isolamento dos Aspectos o AOP precisa interceptar a execução de métodos em que existe a necessidade de incluir um desses comportamentos
  • 8. Java Enterprise Edition (Java EE)  A Sun criou seu próprio padrão para implementação de lógica de negócios, os Enterprise Java Beans (EJBs), e “empurrou-os” para os desenvolvedores.  Em meados de 2004 a plataforma Java EE era muito distinta da atual. Os EJBs tinham problemas :  Não podiam ser executadas fora de um container de aplicação, o que dificultava os testes - desenvolvimento orientada a testes estava se tornando popular na época  Eram complexos e muitos desenvolvedores subutilizavam de seus recursos  O container EJB é intrusivo, ou seja, os objetos dependem da(s) biblioteca(s) do container EJB por interfaces ou anotações.
  • 9. Surgimento do Spring  Começou a surgir com a publicação do livro Expert One-To-One J2EE Design and Development de Rod Johnson que criticava os EJBs  O Spring surgiu com o intuito de minimizar os problemas apresentados (essenciais e específicos) oferecendo um container alternativo ao container EJB  Spring é resultado de IoC (Inversão de Controle) + DI (Injeção de Dependências) + AOP (Programação Orientada a Aspectos)
  • 10. Vantagens do Spring  O container Spring é não intrusivo  Facilidade para se escrever testes  Container independente de ambiente, não necessita de servidor de aplicação  Facilidade para reuso de código
  • 11. Core Container – O núcleo do Spring  As classes básicas estão no módulo Core, onde estão implementadas as funcionalidades de reflexão, tratamento de strings etc  Expression Language é responsável pelo processamento das configurações do Spring, seja em xml, anotações ou por código  No Beans se encontra o BeanFactory, a primeira versão do container  Finalmente, no módulo Context está localizada a implementação mais avançada do container e recomendada pela Spring Source, a Application Context
  • 12. Conceitos do Spring  Bean : É todo objeto gerenciado pelo container do Spring  Na declaração do Bean é indicada a classe a ser injetada. Existem dois tipos de injeção: por métodos setter ou por construtor  Exemplo de declaração de bean usando xml :
  • 13. Conceitos do Spring  A instanciação de um objeto pode ser complexa e assim necessitar de fábricas ou builders. No Spring pode-se definir que um bean será instanciado por um deles.  Além disso há a possibilidade de mapear objetos complexos como listas, mapas, properties etc
  • 14. Usando o Container  Como pegar instâncias dos Beans?  Primeiramente é necessário iniciar o container com as definições de Beans  Depois disso é só “pegar” os Beans
  • 15. Componentes do Spring  Basicamente o Spring possui tudo que uma aplicação corporativa precisa, e todos os seus componentes são baseados no seu container
  • 16. Um pouco de Spring MVC  Servlets adicionam muito código repetitivo a aplicação e é necessário lidar diretamente com objetos de requisição e resposta  Parâmetros de requisição são recebidos como strings e é necessário fazer várias conversões para montar um objeto de modelo  Não existe um único ponto de entrada para requisições  Modularizar o código se torna difícil  O Spring MVC facilita tudo isso e junto com outros módulos do framework tem grande poder para aplicações corporativas
  • 17. Um pouco de Spring MVC  Depois da criação do container do Spring, a Spring Source percebeu a oportunidade de criar um framework MVC para aplicações WEB  A base do Spring MVC, como o próprio nome já diz, é o padrão de arquitetura MVC e uso do padrão Front Controller  O MVC nos permite isolar a camada de negócios (modelo) da de visualização através de uma cadama intermediária, o Controlador.  O Front Controller intercepta todas as requisições para direcionar ao Controlador adequado Controlador no Spring Framework
  • 18. Exemplo de Spring MVC Controlador View mapeada para pasta WEB-INF/view/helloWorld.html
  • 19. Referências Bibliográficas  Professor Camilo Camilo Almendra  camilo@es.ufc.br  Alunos :  Alexsandro Oliveira Alexandrino  sandrooliveira1501@gmail.com  Cayk Lima Barreto  cayk-lima@hotmail.com  Guia oficial Spring: http://docs.spring.io/spring/docs/4.1.2 .BUILD-SNAPSHOT/spring-framework-reference/ htmlsingle/#overview  FLOWER, Martin, Inversion of Control Containers and the Dependency Injection pattern. Disponível em : http://www.martinfowler.com/articles /injection.html  Rod Johnson. Expert One-To-One J2EE Development Without EJB. Wrox Press,2004.  Lobo, Henrique. Vire o Jogo com Spring Framework. Casa do Código.