PRING TRUTS
...MAS PRIMEIRO...
MVC Model-View-Controller
Introdução <ul><li>Códigos suscetíveis a mudança. </li></ul><ul><li>Lógica acoplada firmemente à interface. </li></ul><ul>...
Model <ul><li>Representa os dados usados pela aplicação. </li></ul><ul><li>Define detalhes da manipulação e armazenamento ...
View <ul><li>Detalhes da implementação da interface de usuário. </li></ul><ul><li>Única a interagir com o usuário </li></u...
Controller <ul><li>Detalhes sobre a transição da aplicação. </li></ul><ul><li>Captura os eventos da camada  view  e atuali...
 
Model 2 <ul><li>Ligeira modificação do MVC para uso em aplicações WEB. </li></ul><ul><ul><li>Servlet: </li></ul></ul><ul><...
Struts Framework padrão WEB
Apresentação do Framework <ul><li>Os desenvolvedores utilizam o Struts para suportar cada camada de uma aplicação (MVC2). ...
Entendedo Struts
O que baixar para instalar <ul><li>Você deve ter o TomCat </li></ul><ul><li>Baixe o Struts 2 no site  http://struts.apache...
Como instalar <ul><li>Descompacte o Struts em qualquer diretório </li></ul><ul><li>Para testar o Struts copie o arquivo st...
 
 
Para fazer sua própria aplicação Struts <ul><li>Quando você abrir o arquivo .war com um browser, ele gerará uma pasta  str...
 
Vantagens do Struts <ul><li>O Struts serve para auxiliar no desenvolvimento de aplicações para WEB. </li></ul><ul><li>Ele ...
Inside Struts... <ul><li>Servlets é uma tecnologia em servidores que ajudam a guiar uma página web para uma URL que contém...
Solução <ul><li>Com o problema da reusabilidade das JSP, criaram tags especiais html para acessar partes de código, exempl...
Exemplo de Projeto Struts <ul><li>Vamos estudar um projeto que vêm com o Struts </li></ul><ul><li>O que irei explicar é um...
 
 
Example.xml
 
 
 
 
Conclusão <ul><li>O Struts facilita o desenvolvimento de aplicações WEB. </li></ul><ul><li>A versão 2.0 tem bastante ferra...
SPRING
Utilização <ul><li>J2EE </li></ul><ul><li>Aplicações de grande porte </li></ul><ul><li>Reduzir este problema </li></ul><ul...
Conceitos Básicos <ul><li>Padrões de Desenvolvimento </li></ul><ul><ul><li>Dependency Injection </li></ul></ul><ul><ul><li...
Inversion of Control  Padrão de desenvolvimento de programas de computadores onde a sequência (controle) de chamadas dos m...
Dependency Injection No Spring o container se encarrega de &quot;instanciar&quot; classes de uma aplicação Java e definir ...
Exemplo Codificação Vamos implementar o seguinte sistema de classes Normalmente e depois implementaremos Spring no Sistema...
Exemplo Codificação <ul><li>public class  Computador { </li></ul><ul><li>private  Impressora  impressora  =  null ; </li><...
Exemplo Codificação <ul><li>public class  Impressora { </li></ul><ul><ul><li>public void imprimir(String texto) { </li></u...
Dependency Injection Para fazer o Spring entender a dependência entre nossas classes, precisamos criar um arquivo de confi...
Exemplo Codificação (Inclusão de Dependência) <ul><li><?xml version= &quot;1.0&quot;  encoding= &quot;UTF-8&quot; ?> </li>...
Exemplo Codificação <ul><li>E para testar nosso exemplo utilizando Spring podemos utilizar a classe abaixo: </li></ul><ul>...
O Arquivo ApplicationContext.xml O applicationContext.xml é onde são declarados os beans do Spring. O framework chama de b...
<bean id=” identificador   do   bean ” class=” FQN   da   classe   que   implementa   o   bean ” > <property name=” nome d...
O Arquivo ApplicationContext.xml No exemplo, declaramos os beans computadorBean, impressoraBean, monitorBean e tecladoBean...
Próximos SlideShares
Carregando em…5
×

Spring & Struts

3.932 visualizações

Publicada em

Olá, encontrei dificuldades para achar um conteúdo sobre Spring e Struts em português, acho que esse será uma grande apoio para quem anda pesquisando sobre isso,
por favor qualquer duvida entrem em contato comigo, pois será uma prazer ajudar

Publicada em: Tecnologia, Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.932
No SlideShare
0
A partir de incorporações
0
Número de incorporações
37
Ações
Compartilhamentos
0
Downloads
158
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Spring & Struts

    1. 1. PRING TRUTS
    2. 2. ...MAS PRIMEIRO...
    3. 3. MVC Model-View-Controller
    4. 4. Introdução <ul><li>Códigos suscetíveis a mudança. </li></ul><ul><li>Lógica acoplada firmemente à interface. </li></ul><ul><li>Solução: </li></ul><ul><ul><li>Dividir a aplicação. </li></ul></ul><ul><ul><ul><li>Model </li></ul></ul></ul><ul><ul><ul><li>View </li></ul></ul></ul><ul><ul><ul><li>Controller </li></ul></ul></ul>
    5. 5. Model <ul><li>Representa os dados usados pela aplicação. </li></ul><ul><li>Define detalhes da manipulação e armazenamento de dados. </li></ul><ul><li>Benefícios: </li></ul><ul><ul><li>Manutenção: detalhes dos dados e das operações nos dados podem ser encontrados facilmente. </li></ul></ul><ul><ul><li>Pode ser reutilizado por outra aplicação. </li></ul></ul>
    6. 6. View <ul><li>Detalhes da implementação da interface de usuário. </li></ul><ul><li>Única a interagir com o usuário </li></ul><ul><li>Benefícios: </li></ul><ul><ul><li>Múltiplas interfaces(Swing, WEB, Console). </li></ul></ul><ul><ul><li>Criação de grupo de design voltada para o estilo, look & feel . </li></ul></ul>
    7. 7. Controller <ul><li>Detalhes sobre a transição da aplicação. </li></ul><ul><li>Captura os eventos da camada view e atualiza os componentes da camada model. </li></ul><ul><li>Benefícios: </li></ul><ul><ul><li>Camada view pode ser projetada sem estar ciente de outros componentes. </li></ul></ul><ul><ul><li>Atualização dos componentes model são removidos da view . </li></ul></ul>
    8. 9. Model 2 <ul><li>Ligeira modificação do MVC para uso em aplicações WEB. </li></ul><ul><ul><li>Servlet: </li></ul></ul><ul><ul><ul><li>Fornecer um ponto de acesso único ao restante da aplicação. </li></ul></ul></ul><ul><ul><ul><li>Responsável pela gerência central do fluxo da aplicação </li></ul></ul></ul><ul><ul><li>Páginas JSP. </li></ul></ul>
    9. 10. Struts Framework padrão WEB
    10. 11. Apresentação do Framework <ul><li>Os desenvolvedores utilizam o Struts para suportar cada camada de uma aplicação (MVC2). </li></ul><ul><li>Ele implementa o controlador da aplicação (Integração das camadas). </li></ul><ul><li>Struts – Estrutura – Provê a estrutura inicial das aplicações </li></ul>
    11. 12. Entendedo Struts
    12. 13. O que baixar para instalar <ul><li>Você deve ter o TomCat </li></ul><ul><li>Baixe o Struts 2 no site http://struts.apache.org/download.cgi#struts20111 </li></ul><ul><li>Instale o Amateras: </li></ul><ul><li>https ://sourceforge.jp/projects/amateras/files/?release_id=29511#29511 </li></ul>
    13. 14. Como instalar <ul><li>Descompacte o Struts em qualquer diretório </li></ul><ul><li>Para testar o Struts copie o arquivo struts2-blank-2.0.11.1.war para a pasta webapps do Tomcat </li></ul><ul><li>Inicie o serviço Tomcat, acesse http://localhost:8080 </li></ul><ul><ul><li>Deve aparecer a página inicial do Tomcat </li></ul></ul><ul><li>Agora tente acessar o arquivo war que você copiou digitando </li></ul><ul><ul><li>http://localhost:8080/struts2-blank-2.0.11.1 </li></ul></ul>
    14. 17. Para fazer sua própria aplicação Struts <ul><li>Quando você abrir o arquivo .war com um browser, ele gerará uma pasta struts2-blank-2.0.11.1 , que terá algumas subpastas. </li></ul><ul><ul><li>WEB-INF/results: páginas JSPs contendo o resultado de uma operação realizada pelo usuário. Estas páginas poderão ser chamadas somente pelo Struts. O usuário da aplicação não conseguirá acessá-las diretamente; </li></ul></ul><ul><ul><li>WEB-INF/src: abaixo deste diretório serão mantidos os arquivos .java da aplicação </li></ul></ul><ul><ul><li>WEB-INF/lib: bibliotecas utilizadas pela aplicação; </li></ul></ul><ul><ul><li>WEB-INF/classes: arquivos .class referentes às classes Java compiladas da aplicação; </li></ul></ul><ul><li>Adicione essa pasta ao seu workspace, mude seu nome e comece a editá-la </li></ul>
    15. 19. Vantagens do Struts <ul><li>O Struts serve para auxiliar no desenvolvimento de aplicações para WEB. </li></ul><ul><li>Ele separa muito bem cada camada utilizando MVC </li></ul><ul><li>Desenvolvedores html e java podem trabalhar separadamente no mesmo projeto. </li></ul><ul><li>A interface não depende do fluxo de informação e vice-versa </li></ul>
    16. 20. Inside Struts... <ul><li>Servlets é uma tecnologia em servidores que ajudam a guiar uma página web para uma URL que contém uma classe e permite a utilização do métodos desta usando http. </li></ul><ul><li>Ruim pois qualquer modificação na interface gerava mudança no código fonte do Servlet (Que continha o código Java) </li></ul><ul><li>JSP (Java Server Pages) Páginas com HTML e código Java, facilita o desenvolvimento. </li></ul><ul><li>Problema: JSP lida com a apresentação (html) e desenvolvimento (JAVA) no mesmo arquivo, não havia como reutilizar código decentemente. </li></ul>
    17. 21. Solução <ul><li>Com o problema da reusabilidade das JSP, criaram tags especiais html para acessar partes de código, exemplos: </li></ul><ul><ul><li><jsp:useBean … /> </li></ul></ul><ul><li>Agora para dividir bem as funções das JSP e dos Servlets criaram frameworks como o Struts! </li></ul><ul><li>O Struts gerencia as 3 partes do MVC (Mais focado na C) </li></ul><ul><ul><li>Model: .Java </li></ul></ul><ul><ul><li>View: São as JSPs </li></ul></ul><ul><ul><li>Controller: Actions </li></ul></ul>
    18. 22. Exemplo de Projeto Struts <ul><li>Vamos estudar um projeto que vêm com o Struts </li></ul><ul><li>O que irei explicar é uma tela de login simples que lê os dados de um usuário. </li></ul>
    19. 25. Example.xml
    20. 30. Conclusão <ul><li>O Struts facilita o desenvolvimento de aplicações WEB. </li></ul><ul><li>A versão 2.0 tem bastante ferramentas inovadoras. </li></ul><ul><li>Deve ser estudado com afinco pois é muito abrangente </li></ul>
    21. 31. SPRING
    22. 32. Utilização <ul><li>J2EE </li></ul><ul><li>Aplicações de grande porte </li></ul><ul><li>Reduzir este problema </li></ul><ul><li>MVC </li></ul>
    23. 33. Conceitos Básicos <ul><li>Padrões de Desenvolvimento </li></ul><ul><ul><li>Dependency Injection </li></ul></ul><ul><ul><li>Inversion of Control </li></ul></ul>
    24. 34. Inversion of Control Padrão de desenvolvimento de programas de computadores onde a sequência (controle) de chamadas dos métodos não é determinada pelo programador. Este controle é delegado a uma infraestrutura de software muitas vezes chamada de container. Esta é uma característica comum aos frameworks. http://pt.wikipedia.com/ Dependency_Injection (Inversão de Controle)
    25. 35. Dependency Injection No Spring o container se encarrega de &quot;instanciar&quot; classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração em formato XML. Dessa forma o Spring permite o baixo acoplamento entre classes de uma aplicação orientada a objetos. http://pt.wikipedia.com/ Dependency_Injection (Inclusão de Dependência)
    26. 36. Exemplo Codificação Vamos implementar o seguinte sistema de classes Normalmente e depois implementaremos Spring no Sistema. (Inclusão de Dependência)
    27. 37. Exemplo Codificação <ul><li>public class Computador { </li></ul><ul><li>private Impressora impressora = null ; </li></ul><ul><li>private Monitor monitor = null ; </li></ul><ul><li>private Teclado teclado = null ; </li></ul><ul><ul><li>public void setImpressora(Impressora impressora) { </li></ul></ul><ul><ul><li>this . impressora = impressora; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>public void setMonitor(Monitor monitor) { </li></ul></ul><ul><ul><li>this . monitor = monitor; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>public void setTeclado(Teclado teclado) { </li></ul></ul><ul><ul><li>this . teclado = teclado; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>public void ligar(){ </li></ul></ul><ul><ul><ul><li>monitor .exibeMensagem(&quot;Digite texto para impressão&quot;); </li></ul></ul></ul><ul><ul><ul><li>String texto = teclado.ler(); </li></ul></ul></ul><ul><ul><ul><li>impressora .imprimir(texto); </li></ul></ul></ul><ul><ul><ul><li>monitor .exibeMensagem(&quot;Texto Impresso!&quot;); </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul>(Inclusão de Dependência)
    28. 38. Exemplo Codificação <ul><li>public class Impressora { </li></ul><ul><ul><li>public void imprimir(String texto) { </li></ul></ul><ul><ul><li>System.out.println(&quot;[IMPRESSORA] &quot; + texto); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>(Inclusão de Dependência) <ul><li>public class Monitor { </li></ul><ul><ul><li>public void exibeMensagem(String mensagem) { </li></ul></ul><ul><ul><li>System.out.println(&quot;[MONITOR] &quot;+mensagem); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul><ul><li>public class Teclado { </li></ul><ul><li>public String ler() { </li></ul><ul><li>String texto = null ; </li></ul><ul><li>System.out.print(&quot;[TECLADO]>&quot;); </li></ul><ul><ul><ul><li>try { </li></ul></ul></ul><ul><ul><ul><ul><li>texto = new BufferedReader(new InputStreamReader(System.in)) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>.readLine(); </li></ul></ul></ul></ul><ul><ul><ul><li>} catch (IOException e) { </li></ul></ul></ul><ul><ul><ul><ul><li>System.out.println(&quot;Erro lendo teclado!&quot;); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>e.printStackTrace(); </li></ul></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><ul><li>return texto; </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><li>} </li></ul><ul><li>/*Classe de Teste*/ </li></ul><ul><li>public class IniciaComputador { </li></ul><ul><ul><li>public static void main(String[] args) { </li></ul></ul><ul><ul><ul><li>Computador computador = new Computador(); </li></ul></ul></ul><ul><ul><ul><li>computador.setImpressora( new Impressora()); </li></ul></ul></ul><ul><ul><ul><li>computador.setTeclado( new Teclado()); </li></ul></ul></ul><ul><ul><ul><li>computador.setMonitor( new Monitor()); </li></ul></ul></ul><ul><ul><ul><li>computador.ligar(); </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>/*Saida no Console*/ [MONITOR] Digite texto para impressão [TECLADO]> Teste [IMPRESSORA] Teste [MONITOR] Texto Impresso!
    29. 39. Dependency Injection Para fazer o Spring entender a dependência entre nossas classes, precisamos criar um arquivo de configuração. Este geralmente recebe o nome de applicationContext.xml . Vejamos o arquivo que define nosso exemplo: (Inclusão de Dependência)
    30. 40. Exemplo Codificação (Inclusão de Dependência) <ul><li><?xml version= &quot;1.0&quot; encoding= &quot;UTF-8&quot; ?> </li></ul><ul><li><!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; </li></ul><ul><li>&quot;http://www.springframework.org/dtd/spring-beans.dtd&quot; > </li></ul><ul><ul><li><beans> </li></ul></ul><ul><ul><ul><li><bean id=“ computadorBean ” class=“ pacoteBase.Computador ”> </li></ul></ul></ul><ul><ul><ul><li><property name=&quot; impressora &quot; ref=“ impressoraBean “/> </li></ul></ul></ul><ul><ul><ul><ul><li><property name=&quot; teclado &quot; ref=“ tecladoBean “/> </li></ul></ul></ul></ul><ul><ul><ul><li><property name=&quot; monitor “ ref=&quot; monitorBean “/> </li></ul></ul></ul><ul><ul><ul><li></bean> </li></ul></ul></ul><ul><ul><ul><li><bean id=“ impressoraBean “ class=“ pacoteBase.Impressora “/> </li></ul></ul></ul><ul><ul><ul><li><bean id=“ tecladoBean “ class=“ pacoteBase.Teclado “/> </li></ul></ul></ul><ul><ul><ul><li><bean id=“ monitorBean “ class=“ pacoteBase.Monitor “/> </li></ul></ul></ul><ul><ul><li></beans> </li></ul></ul>Classes Atributos
    31. 41. Exemplo Codificação <ul><li>E para testar nosso exemplo utilizando Spring podemos utilizar a classe abaixo: </li></ul><ul><li>public class IniciaUsandoSpring { </li></ul><ul><ul><li>public static void main(String[] args) { </li></ul></ul><ul><ul><ul><li>ApplicationContext applicationContext = new </li></ul></ul></ul><ul><ul><ul><li>ClassPathXmlApplicationContext(“ </li></ul></ul></ul><ul><ul><ul><li>classpath:pacoteBase/applicationContext.xml &quot;); </li></ul></ul></ul><ul><ul><ul><li>Computador computador = (Computador) </li></ul></ul></ul><ul><ul><ul><li>applicationContext.getBean(&quot; computadorBean &quot;); </li></ul></ul></ul><ul><ul><ul><li>computador.ligar(); </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>(Inclusão de Dependência) /*Saida no Console*/ [MONITOR] Digite texto para impressão [TECLADO]> Teste [IMPRESSORA] Teste [MONITOR] Texto Impresso!
    32. 42. O Arquivo ApplicationContext.xml O applicationContext.xml é onde são declarados os beans do Spring. O framework chama de beans todas as classes que gerencia. As classes precisam ser declaradas utilizando o elemento <bean> (Inclusão de Dependência)
    33. 43. <bean id=” identificador do bean ” class=” FQN da classe que implementa o bean ” > <property name=” nome do atributo ” ref=” id do bean que satisfaz a dependência ”/> </bean> FQN significa Fully-Qualified Name, ou nome completo. O FQN de uma classe é o nome da classe com o seu pacote completo. Por exemplo, o FQN da classe String é java.lang.String , o FQN da classe List é java.util.List .
    34. 44. O Arquivo ApplicationContext.xml No exemplo, declaramos os beans computadorBean, impressoraBean, monitorBean e tecladoBean. O bean computadorBean possui como atributos referências para os outros beans e estas referências são declaradas utilizando elementos property dentro da declaração do bean. Ao utilizar o elemento property, o Spring irá tentar utilizar um método set NomeDoAtributo () para preencher o bean com a dependência configurada. Muitas vezes, para não quebrar a invariante de um objeto é necessário que suas dependências sejam supridas durante a inicialização deste. Para estes casos, o Spring oferece a possibilidade de injetar as dependências utilizando o construtor do objeto ao invés de seus métodos mutadores (setters). (Inclusão de Dependência)

    ×