Hello World com Spring 3 para um projeto WEB

Uma das maiores dúvidas na utilização do Spring é como fazer a configuração inicial da aplicação. Nesse tutorial explicaremos como fazer essa configuração. Mostraremos como criar uma aplicação web, quais arquivos necessários, e configurar beans no contexto do Spring. Tudo para uma aplicação WEB.

1. Baixando o Spring

Nesse tutorial foi utilizado o Spring versão 3.0.1, que pode ser baixado no seguinte endereço http://www.springsource.com/download/community. Quando acessar a página, será pedido que preencha um formulário, voce pode preencher ou clicar no link download page na parte de baixo do form onde é dito “I’d rather not fill in the form. Just take me to the download page”. É interessante fazer dois downloads, um é o Spring Framework with Docs, que é o Spring + Documentação. E o Spring Framework Dependencies, que são as dependencias do Spring.
http://s3.amazonaws.com/dist.springframework.org/release/SPR/spring-framework-3.0.1.RELEASE-A-dependencies.zip
http://s3.amazonaws.com/dist.springframework.org/release/SPR/spring-framework-3.0.1.RELEASE-A-with-docs.zip

Extraia os arquivos baixados para um pasta qualquer. No arquivo Spring with Docs existirá uma pasta dist, que contém a distribuição do Spring e uma pasta src com os fontes das biliotecas, essas são as pastas mais importantes. No arquivo dependencies existirá uma pasta que representa cada pacote de dependências do Spring. Você não precisará importar para seu projeto todas as biliotecas, apenas as que for utilizar.

Dica: Quando estiver desenvolvendo com o Spring e encontrar um erro como java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory, significa que a classe LogFactory do pacote org.apache.commons.logging não foi encontrada. Repare o pacote org/apache/commons, esse pacote é de uma biblioteca externa (não é org/springframework), você poderá encontrar essa biblioteca no arquivo de dependencies na pasta org.apache.commons. Dentro dessa pasta existirá uma subpasta com.springsource.org.apache.commons.logging o final do pacote condiz com o pacote da classe não encontrada org.apache.commons.logging, logo essa deve ser a biblioteca a ser adicionada.
Se o erro encontrado for algo como java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor, repare que o pacote é org/springframework, logo essa é uma classe do Spring. Essa classe estará dentro de algum jar dentro da pasta dist da distribuição do JAR do Spring. Existe um arquivo JAR chamado org.springframework.asm-3.0.1.RELEASE-A.jar repare que o nome do arquivo org.springframework.asm condiz com o pacote da classe, logo esse é o JAR que deve ser adicionado ao seu projeto.

2. Criando o projeto

Vamos criar e preparar um projeto com as bibliotecas do Spring. Crie um projeto WEB no seu ambiente de desenvolvimento. Se estiver utilizando o plugin WTP do eclipse, será um projeto Dynamic Web Project. Escolha um projeto que tenha como versão do servlet 2.4 ou superior e Java 1.5 ou superior.

Copie para o diretório /WEB-INF/lib da sua aplicação os seguintes arquivos JAR (estão na pasta dist do arquivo baixado):

  • org.springframework.asm-3.0.1.RELEASE-A.jar
  • org.springframework.beans-3.0.1.RELEASE-A.jar
  • org.springframework.context-3.0.1.RELEASE-A.jar
  • org.springframework.core-3.0.1.RELEASE-A.jar
  • org.springframework.expression-3.0.1.RELEASE-A.jar
  • org.springframework.web-3.0.1.RELEASE-A.jar

Copie também para o diretório /WEB-INF/lib da sua aplicação o seguinte JAR que está no arquivo de dependencias (pasta org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1):

  • com.springsource.org.apache.commons.logging-1.1.1.jar

Essas são as bibliotecas que utilizaremos nesse tutorial, a medida que for avançando na utilização do Spring, outras bibliotecas podem ser necessárias.

3. Configurando o projeto com o Spring

A configuração do Spring é feita através de um arquivo XML. Vamos criar um arquivo applicationContext.xml na pasta WEB-INF para utilizar como configuração do Spring. Esse arquivo deve ter o seguinte conteúdo:

<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”
http://www.springframework.org/schema/beans”
       xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
       xsi:schemaLocation=”http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”>

</beans>

Por enquanto esse arquivo não terá nenhuma configuração.

Ao iniciar a aplicação será necessário inicializar o container do Spring. Esse container irá ler o applicationContext.xml criado e fará a inicialização da aplicação. Precisamos informar ao container web sobre a inicialização do Spring, fazemos isso com a seguinte configuração no web.xml:

<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”2.5″
xmlns=”
http://java.sun.com/xml/ns/javaee”
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”

<!– Bootstrap the root application context as usual using ContextLoaderListener –>
<listener>
<listener-class>
            org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

</web-app>

O ContextLoaderListener por padrão irá ler o arquivo applicationContext.xml e fazer a configuração do Spring.

Agora é um momento interessante de se testar a aplicação. Faça o deploy da aplicação, ligue o servidor e verifique se a aplicação é incializada sem erros. Se tudo funcionou perfeitamente, passe para a próxima etapa. Se acontecer algum erro, verifique seu deploy, se as bibliotecas foram colocadas nos locais corretos, e se o arquivo web.xml e applicationContext.xml estão como no exemplo (você poderá utilizar um web.xml com versão de servlet 2.4, o exemplo acima utiliza servlet 2.5).

4. Criando o primeiro bean

No Spring os objetos configurados tem o nome de bean. Você declara vários beans na sua aplicação e o Spring faz a injeção de dependencia, instanciando e configurando os objetos. Vamos criar nosso primeiro bean para testar o Spring. Crie uma classe chamada HelloWorld com o seguinte código:

package org.javaframework.spring;

public class HelloWorld {

String mensagem;
public void setMensagem(String message) {
this.mensagem = message;
}
public void dizerMensagem(){
System.out.println(“Hello World!! “+mensagem);
}
}

É apenas uma classe comum em Java. Iremos configurar agora, um bean no Spring. Como dito anteriormente um bean é um objeto configurado pelo container do Spring. Iremos utilizar o applicationContext.xml para configurar esse bean. Adicione o seguinte trecho no arquivo /WEB-INF/applicationContext.xml:

<bean init-method=”dizerMensagem”>
<property name=”mensagem” value=”Primeiro bean configurado do Spring!!!”/>
</bean>

A tag bean define um bean para a classe org.javaframework.spring.HelloWorld. Configuramos o método que deve ser chamado na inicialização desse bean através do init-method. E configuramos a propriedade mensagem. O Spring irá instanciar um objeto da classe HelloWorld, chamará o método setMensagem com o valor “Primeiro bean configurado do Spring!!!” e por fim invocará o método dizerMensagem. Se fizer a publicação da aplicação e ligar o servidor você verá a seguinte linha no console:

Hello World!! Primeiro bean configurado do Spring!!!

(Procure no console pois não será a última linha impressa)

Espero que tenha sido útil, fique atento ao Java Framework Portal para novos tutoriais.

Veja também: Spring 3, configurando beans com Annotations

Fonte: JavaFramework

Anúncios

About Gustavo Amaro

+ Formado em Tecnologia e Análise de Sistemas + MBA em Desenvolvimento de Aplicações JAVA – SOA

Posted on 1 de Março de 2013, in Java, Spring and tagged , , , , , , . Bookmark the permalink. Deixe um comentário.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: