spring & struts

Post on 11-Jun-2015

3.492 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

...MAS PRIMEIRO...

MVCModel-View-Controller

Introdução

• Códigos suscetíveis a mudança.• Lógica acoplada firmemente à interface.

• Solução:– Dividir a aplicação.

• Model• View• Controller

Model

• Representa os dados usados pela aplicação.• Define detalhes da manipulação e

armazenamento de dados.

• Benefícios:– Manutenção: detalhes dos dados e das operações nos

dados podem ser encontrados facilmente.– Pode ser reutilizado por outra aplicação.

View

• Detalhes da implementação da interface de usuário.

• Única a interagir com o usuário

• Benefícios:– Múltiplas interfaces(Swing, WEB, Console).– Criação de grupo de design voltada para o estilo, look

& feel.

Controller

• Detalhes sobre a transição da aplicação.• Captura os eventos da camada view e atualiza os

componentes da camada model.

• Benefícios:– Camada view pode ser projetada sem estar ciente de

outros componentes.– Atualização dos componentes model são removidos

da view.

Model 2

• Ligeira modificação do MVC para uso em aplicações WEB.– Servlet:

• Fornecer um ponto de acesso único ao restante da aplicação.• Responsável pela gerência central do fluxo da aplicação

– Páginas JSP.

Struts

Framework padrão WEB

Apresentação do Framework

Os desenvolvedores utilizam o Struts para suportar cada camada de uma aplicação (MVC2).

Ele implementa o controlador da aplicação (Integração das camadas).

Struts – Estrutura – Provê a estrutura inicial das aplicações

Entendedo Struts

O que baixar para instalar

Você deve ter o TomCat

Baixe o Struts 2 no site http://struts.apache.org/download.cgi#struts20111

Instale o Amateras: https

://sourceforge.jp/projects/amateras/files/?release_id=29511#29511

Como instalar Descompacte o Struts em qualquer diretório

Para testar o Struts copie o arquivo struts2-blank-2.0.11.1.war para a pasta \webapps do Tomcat

Inicie o serviço Tomcat, acesse http://localhost:8080• Deve aparecer a página inicial do Tomcat

Agora tente acessar o arquivo war que você copiou digitando• http://localhost:8080/struts2-blank-2.0.11.1

Para fazer sua própria aplicação Struts Quando você abrir o arquivo .war com um browser, ele

gerará uma pasta struts2-blank-2.0.11.1, que terá algumas subpastas.• 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;

• WEB-INF/src: abaixo deste diretório serão mantidos os arquivos .java da aplicação

• WEB-INF/lib: bibliotecas utilizadas pela aplicação; • WEB-INF/classes: arquivos .class referentes às classes

Java compiladas da aplicação; Adicione essa pasta ao seu workspace, mude seu nome

e comece a editá-la

Vantagens do Struts

O Struts serve para auxiliar no desenvolvimento de aplicações para WEB.

Ele separa muito bem cada camada utilizando MVC

Desenvolvedores html e java podem trabalhar separadamente no mesmo projeto.

A interface não depende do fluxo de informação e vice-versa

Inside Struts... 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.

Ruim pois qualquer modificação na interface gerava mudança no código fonte do Servlet (Que continha o código Java)

JSP (Java Server Pages) Páginas com HTML e código Java, facilita o desenvolvimento.

Problema: JSP lida com a apresentação (html) e desenvolvimento (JAVA) no mesmo arquivo, não havia como reutilizar código decentemente.

Solução Com o problema da reusabilidade das JSP, criaram tags

especiais html para acessar partes de código, exemplos:

• <jsp:useBean … /> Agora para dividir bem as funções das JSP e dos

Servlets criaram frameworks como o Struts! O Struts gerencia as 3 partes do MVC (Mais focado na C)

• Model: .Java

• View: São as JSPs

• Controller: Actions

Exemplo de Projeto Struts

Vamos estudar um projeto que vêm com o Struts

O que irei explicar é uma tela de login simples que lê os dados de um usuário.

Example.xml

Conclusão

O Struts facilita o desenvolvimento de aplicações WEB.

A versão 2.0 tem bastante ferramentas inovadoras.

Deve ser estudado com afinco pois é muito abrangente

• J2EE

• Aplicações de grande porte

• Reduzir este problema

• MVC

Utilização

• Padrões de Desenvolvimento

• Dependency Injection

• Inversion of Control

Conceitos Básicos

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.

Inversion of Control

http://pt.wikipedia.com/ Dependency_Injection

(Inversão de Controle)

No Spring o container se encarrega de

"instanciar" 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.

Dependency Injection

http://pt.wikipedia.com/ Dependency_Injection

(Inclusão de Dependência)

Vamos implementar o seguinte sistema de classes Normalmente e depois implementaremos Spring no Sistema.

Exemplo Codificação(Inclusão de Dependência)

public class Computador {private Impressora impressora = null;private Monitor monitor = null;private Teclado teclado = null;

public void setImpressora(Impressora impressora) {this.impressora = impressora;

}public void setMonitor(Monitor monitor) {

this.monitor = monitor;}public void setTeclado(Teclado teclado) {

this.teclado = teclado;}public void ligar(){

monitor.exibeMensagem("Digite texto para impressão");

String texto = teclado.ler();

impressora.imprimir(texto);

monitor.exibeMensagem("Texto Impresso!");

}

}

Exemplo Codificação(Inclusão de Dependência)

public class Impressora {public void imprimir(String texto) {

System.out.println("[IMPRESSORA] " + texto);}

}

Exemplo Codificação(Inclusão de Dependência)

public class Monitor {public void exibeMensagem(String mensagem) {

System.out.println("[MONITOR] "+mensagem);}

}

public class Teclado {public String ler() {

String texto = null;System.out.print("[TECLADO]>");

try {texto = new BufferedReader(new InputStreamReader(System.in)).readLine();

} catch (IOException e) {System.out.println("Erro lendo teclado!");e.printStackTrace();

}return texto;}

}

/*Classe de Teste*/

public class IniciaComputador {public static void main(String[] args) {

Computador computador = new Computador();computador.setImpressora(new Impressora());computador.setTeclado(new Teclado());computador.setMonitor(new Monitor());computador.ligar();

}}

/*Saida no Console*/[MONITOR] Digite texto para impressão[TECLADO]> Teste[IMPRESSORA] Teste[MONITOR] Texto Impresso!

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:

Dependency Injection(Inclusão de Dependência)

Exemplo Codificação(Inclusão de Dependência)

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans><bean id=“computadorBean” class=“pacoteBase.Computador”>

<property name="impressora" ref=“impressoraBean“/>

<property name="teclado" ref=“tecladoBean“/><property name="monitor“ ref="monitorBean“/>

</bean>

<bean id=“impressoraBean“ class=“pacoteBase.Impressora“/>

<bean id=“tecladoBean“ class=“pacoteBase.Teclado“/>

<bean id=“monitorBean“ class=“pacoteBase.Monitor“/>

</beans>

Classes

Atributos

E para testar nosso exemplo utilizando Spring podemos utilizar a classe abaixo:

public class IniciaUsandoSpring {public static void main(String[] args) {

ApplicationContext applicationContext = newClassPathXmlApplicationContext(“classpath:pacoteBase/applicationContext.xml");

Computador computador = (Computador)applicationContext.getBean("computadorBean");

computador.ligar();}

}

Exemplo Codificação(Inclusão de Dependência)

/*Saida no Console*/[MONITOR] Digite texto para impressão[TECLADO]> Teste[IMPRESSORA] Teste[MONITOR] Texto Impresso!

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>

O Arquivo ApplicationContext.xml(Inclusão de Dependência)

<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 oseu pacote completo. Por exemplo, o FQN da classe String é java.lang.String, o FQN da classeList é java.util.List.

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ãodeclaradas utilizando elementos property dentro da declaração do bean.

Ao utilizar o elemento property, o Spring irá tentar utilizar um método setNomeDoAtributo() parapreencher 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).

O Arquivo ApplicationContext.xml(Inclusão de Dependência)

top related