Translate

martes, 15 de enero de 2013

Ejemplo HelloWorld Spring Maven Eclipse.


Roque Manuel Rueda Anastacio, Eder Roberto Ramos Guerrero.
15/01/13

Índice de contenido

 

Tabla de versiones

Versiones
Versión
Fecha
Autor
Comentario
1.0
15/01/13
Roque Rueda, Eder Ramos
Version inicial del documento.

Objetivo

Explicar la creación de proyectos utilizando Maven y el framework Spring.

Instalación

Necesitamos instalar en nuestro ambiente de desarrollo el plug in de m2e Maven Integration for Eclipse en nuestro IDE Eclipse.


 

Creando un proyecto maven

Creando un proyecto vamos a File -> New -> Other -> Maven -> Maven Project.





  
En la siguiente pantalla debemos asegurarnos de que el check box create a simple project no esta seleccionada y presionamos next.



Vamos a seleccionar en el filtro de la ventana quick start para seleccionar la maven-archetype-quickstart. Como se muestra en la ventana siguiente y presionamos next.



Ahora vamos a indicar los datos de nuestro proyecto como lo son su identificador el paquete y demas datos para obtener una pantalla como la que se muestra acontinuacion:




Y vamos a presionar Finish para generar nuestro proyecto. Obtendremos una estructura como la que se presenta a continuación:





Agregando referencias a spring

Ahora vamos a agregar referencias hacia el framework spring para esto editamos nuestro archivo pom.xml, agregando el siguiente codigo a nuestras dependencias.

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring</artifactId>
   <version>2.5.6</version>
</dependency>

 
Y quedara nuestro archivo pom.xml como se muestra a continuación:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>HelloWorld</groupId>
   <artifactId>HelloWorld</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>HelloWorld</name>
   <url>http://maven.apache.org</url>

   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>

   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring</artifactId>
       <version>2.5.6</version>
     </dependency>
   </dependencies>
</project>

Vamos a guardar nuestro proyecto y veremos como maven obtiene la depencia y la coloca en nuestro classpath.



Agregando clases a nuestro proyecto

Vamos a crear una clase (Java Bean) y se declara como un Bean de Spring mas adelante, esta clase la vamos a colocar en nuestra carpeta src/main/java, en nuestro paquete helloworld.

package helloworld;

/**
* Java bean that prints a hello message to the
* user in the default output
*
* @author Roque Rueda
*
*/
public class Hello
{
   private String name;

   /**
   * @param name the name to set
   */
   public void setName(String name) {
     this.name = name;
   }

   /**
   * Display a hello message
   */
   public void printHello()
   {
     System.out.println("Hello! " + name);
   }
}

Configurando el Bean Spring

Vamos a proceder a crear el archivo de configuración que declarará los Beans de Spring que contendrá el proyecto que estamos creando. Primero crearemos un nuevo folder con el nombre resources, para esto hacemos click derecho en el proyecto y vamos a propiedades del proyecto en Java Build Path vamos a la pestaña source y ahi tenemos la opción de agregar nuevas carpetas dentro de nuestro proyecto.









Ahora procedemos a crear un archivo xml de configuración del Bean de Spring. El cual va a declarar los Beans.





Una vez agregado este arhivo editamos el contenido del archivo con el siguiente codigo:


<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">
   <bean id="helloBean" class="helloworld.Hello">
     <property name="name" value="Roque" />
   </bean>
</beans>


Y finalmente vamos a editar nuestra clase App.java con el siguiente codigo:

package helloworld;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
* Hello world!
*
*/
public class App
{
   public static void main( String[] args )
   {
     ApplicationContext context = new ClassPathXmlApplicationContext(
   "SpringBeans.xml");
   Hello obj = (Hello) context.getBean("helloBean");
   obj.printHello();
   }
}


Una vez ejecutado obtenemos la siguiente salida:

15/01/2013 11:17:01 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@13fcf0ce: display name [org.springframework.context.support.ClassPathXmlApplicationContext@13fcf0ce]; startup date [Tue Jan 15 23:17:01 CST 2013]; root of context hierarchy
15/01/2013 11:17:01 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [SpringBeans.xml]
15/01/2013 11:17:01 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@13fcf0ce]: org.springframework.beans.factory.support.DefaultListableBeanFactory@e49d67c
15/01/2013 11:17:01 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@e49d67c: defining beans [helloBean]; root of factory hierarchy
Hello! Roque

Revisando la estructura del código

El proyecto generado contiene la siguiente estructura.