Crear Proyecto Spring

spring-security

Vamos a ver como crear un proyecto Spring desde cero, el ejemplo tratara sobre el proyecto de una libreria.

Que necesitas para crear un proyecto Spring

  • Java SE Development Kit
  • Maven
  • Apache Tomcat
  • STS (Spring Tool Suite)

Creando proyecto Spring MVC

  • En STS (Spring Tools Suite) vamos a File | New| Project, una nueva ventana aparecerá.
  • Seleccionamos Maven Project de la lista y hacemos click en el botón Next.

Sin título-1

  • Una nueva ventana aparecerá, seleccionamos el checkbox de Create a simple Project (skip archetype selection) y hacemos click en Next.
  • El asistente nos pedirá que especifiquemos la información relacionada con el artefacto, introduce el Group Id como com.packt, Artifact como library. A continuación selecciona el Packaging como war y hacemos click en el botón Finish.

Sin título-2

Dependencias Spring MVC

Como vamos a utilizar las APIs de Spring MVC mucho en nuestro proyecto, necesitamos los .jars de Spring en nuestro proyecto durante el desarrollo. Maven se encargara de gestionar las dependencias y empaquetar el proyecto.

  • Abrimos el pom.xml, podemos encontrar el archivo en el directorio raíz de nuestro proyecto.
  • Veremos varias pestañas en la parte inferior del archivo. Si no puedes ver las pestañas, has click derecho en el archivo xml y selecciona la opción Open With y elige Maven Pom Editor. Seleccionamos la pestaña Dependencies y hacemos click en el botón Add de la sección Dependencies. No confundir con el botón Add de la sección Dependencies Management. Debemos elegir el botón Add del panel izquierdo.
  • Una nueva ventana aparecerá, introducimos el Group Id como org.springframework, Artifact Id como spring-webmvc, y Version como 4.0.3.RELEASE. Seleccionamos Scope como compile y hacemos click en el botón OK.

Sin título-3

  • Del mismo modo, añadimos la dependencia para JavaServer Pages Standard Tag Library (JSTL), hacemos click en el mismo botón Add, esta vez, introducimos Group Id como servlet, Artifact como jstl , Versión como 1.2 y seleccionamos Scope como compile.
  • Para terminar, añadimos una dependencia más para servlet-api, introducimos Group Id como servlet, Artifact como javax.servlet-api y Version como 3.1.0, pero esta vez, seleccionamos Scope como provided y hacemos click en el botón OK.
  • Por ultimo guardamos nuestro archivo pom.xml.

Propiedades de Java Version

Tenemos que decirle a Maven que versión de java estamos utilizando. Para ello tenemos que añadir dos entradas property en nuestro archivo pom.xml.

  • Abrimos el archivo pom.xml. Veremos las pestañas en la parte inferior del archivo pom.xml, seleccionamos pestaña Overview, expandimos la opción properties, y hacemos click en el botón Create.
  • Ahora, una nueva ventana parecerá, introducimos Name como compiler.source y Value como 1.8.

Sin título-6

  • Del mismo modo, creamos una property más con Name como compiler.target y Value como 1.8.
  • Para terminar, guardamos el archivo xml.

Empezando con MVC

Como primer paso crearemos una página de inicio para dar la bienvenida. Nuestro objetivo es simple, cuando introduzcamos la URL en http://localhost:8080/library en nuestro navegador, nos mostrara una página de bienvenida.

Sin título-4

Añadiendo una pagina de Bienvenida

Para crear y añadir una página de bienvenida, necesitamos seguir los siguientes pasos:

  • Creamos una estructura de directorios WEB-INF/views/ bajo el directorio src/main/weabapp, creamos un archivo jsp llamado welcome.jsp en el directorio views, añadimos el siguiente código dentro y guardamos.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
		<link rel="stylesheet"
			href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
		<title>Welcome</title>
	</head>
	<body>
		<section>
			<div class="jumbotron">
				<div class="container">
					<h1> ${greeting} </h1>
					<p> ${tagline} </p>
				</div>
			</div>
		</section>
	</body>
</html>
  • Creamos una clase llamada HomeController en el paquete com.packt.library.controller en el directorio src/main/java y añadimos el siguiente código.
package com.packt.library.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {
@RequestMapping(&amp;quot;/&amp;quot;)
public String welcome(Model model){
model.addAttribute(&amp;quot;greeting&amp;quot;, &amp;quot;Welcome to Library&amp;quot;);
model.addAttribute(&amp;quot;tagline&amp;quot;, &amp;quot;The one and only amazing library&amp;quot;);

return &amp;quot;welcome&amp;quot;;
}
}

Web.xml

 Es el fichero que define los parámetros generales de funcionamiento de una aplicación Java. La configuración inicial será para indicar donde crearemos el siguiente fichero, el dispatcher servlet.

  1. Creamos el archivo web.xml en el directorio src/main/webapp/WEB-INF/ en nuestro proyecto e introducimos el siguiente código
<web-app version="3.0" 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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	
	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/webcontext/DispatcherServlet-context.xml</param-value>
		</init-param>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

Dispatcher Servlet

Hemos creado un controlador que puede poner los valores en el modelo, y creamos la vista que puede leer los valores del modelo. Así, el modelo actúa como un intermediario entre la vista y el controlador, con esto, hemos terminado toda la parte de codificación necesaria para presentar la página de bienvenida. Así que ¿vamos a ser capaces de ejecutar nuestro proyecto ahora? No, en esta etapa, si ejecutamos nuestro proyecto y entramos en la URL http://localhost:8080/library/welcome en el navegador, obtendremos el error HTTP Status 404. Eso es porque no hemos realizado ninguna asignación de servlet todavía. En un proyecto Spring MVC, debemos configurar un mapeo del front servlet. El mapeo del front servlet (a veces llamado controlador frontal) es un patrón de diseño en el que todas las solicitudes de una aplicación web en particular se dirigen al mismo servlet. Uno de estos front servlet dados por el framework Spring MVC es el dispatcher servlet (org.springfamework.web.servlet.DispatcherServlet). No hemos configurado el dispatcher servlet para nuestro proyecto todavía, por eso tenemos el error HTTP Status 404.

Todas las peticiones web van primero al dispatcher servlet. El dispatcher servlet es el que decide el método del controlador al que debe enviar la solicitud web. Así que el dispatcher servlet lee la URL de la solicitud web y encuentra el método del controlador adecuado que puede servir a esa solicitud web e invoca la misma. Este proceso de asignación de una solicitud a una método de un controlador especifico se llama request mapping, y el dispatcher servlet es capaz de hacer esto con la ayuda de la anotación @RequestMapping    (org.springframework.web.bind.annotation.RequestMapping).

Consejo

En una aplicación Spring MVC, la URL puede estar dividida en cinco partes, la anotación @RequestMapping solo coincide con la Request path de la Url. Omitiendo scheme, hostname, nombre de la aplicación y así sucesivamente.

La anotación @RequestMapping tiene otro atributo llamado method para reducir aún más el mapeo basado en los tipos de solicitud HTTP (GET, POST, HEAD, OPTIONS, PUT, DELETE y TRACE). Si no especificamos el atributo method en la anotación, por defecto será GET.

 

Sin título-5

 

El dispatcher servlet examina la solicitud de la URL entrante e invoca al controlador correcto. En nuestro caso el método welcome del controlador HomeController será invocado si entramos en la URL http://localhost:8080/library/welcome. Así que vamos a configurar el dispatcher servlet para nuestro proyecto.

Creamos un archivo xml llamado DispatcherServlet-context.xml en el directorio WEB-INF/spring/webcontext/.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-4.0.xsd
	http://www.springframework.org/schema/mvc
	http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

	<mvc:annotation-driven />
	<mvc:resources location="/resources/" mapping="/resource/**"/>
	
	<context:component-scan base-package="com.packt.spring" />
	
	<bean	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

Código completo en Github: https://github.com/ronocid/Library.git

Publicado el 17/11/2015 en Spring y etiquetado en , . Guarda el enlace permanente. Comentarios desactivados en Crear Proyecto Spring.

Los comentarios están cerrados.