Ejemplo básico con Spring MVC (XML-less)

 

Spring puede configurarse a través de archivos XML y/o con código Java. — El siguiente aporte es un ejemplo básico de uso de Spring MVC sin utilizar la configuración basada en XML (también el   es omitido) y como tema del ejemplo se trata de un ABC de Snippets.

 

 

Para poder trabajar sin el descriptor de despliegue (el archivo web.xml), se requiere que el servidor de aplicaciones implemente la especificación de Servlet 3.0+ (p.ej.: Tomcat 7/8, Glassfish 3/4, JBoss AS 7).

Algunos clases de este proyecto utilizan características de Java 8, que pueden modificarse fácilmente para soportar Java 6/7. Para el manejo de las dependencias se utilizó Maven 3.x

Estructura

 


Código Fuente

Se ha incluido el código fuente para ser descargado al final de este post.


 

 

Nótese que se utiliza Java EE 7 y Java 8, pero funciona sin problemas si se modifica para utilizar Java EE 6 y Java 6/7 (eso incluye cambiar el código propio de Java 8). Dependiendo del servidor de aplicaciones, las dependencias para SLF4J y JSTL pueden omitirse.


 

A continuación, la clase dominio que representa un "fragmento de código".

 


 

La siguiente clase es una interfaz con métodos relacionados con la clase de dominio  . La implementación de cada uno de estos métodos puede contener reglas de negocio.

 

 

Una implementación más realista de la interfaz anterior debería involucrar una base de datos. Sin embargo, para propósitos de prueba se utilizará una instancia estática de   como almacen de datos.

 

 

 

En XML, la clase anterior representaría un archivo de configuración de Spring individual ( ) y cada método anotado con   un  .


 

Si la URI de un petición GET es "/" o "/welcome", se mostrará un HTML con la página de inicio.

 

El "welcome" regresado por el método pasará por   (configuración más abajo) para devolver el JSP "WEB-INF/jsp/welcome.jsp".

 

 

 

Dependiendo de la URI de la petición y del método HTTP (  o  ), se ejecutará alguno de los siguientes métodos.

 

Las cadenas que regresan los métodos: "all" es un forward a la lista de todos los fragmentos de código. "redirect:all" es un redirect a la misma lista. "see" muestra los datos del fragmento de código seleccionado. "edit" muestra el formulario de edición del fragmento de código seleccionado. — "all", "see" y "edit" tienen un JSP respectivo en la carpeta "WEB-INF/jsp/"

 

 

 

 

 

 

 

 

En XML, la clase anterior correspondería a un archivo con nombre  . La anotación   indica el paquete en el que se encuentran los controladores (@Controller).   se utiliza para resolver "vista de recursos internos". Cada   indica dónde encontrar recursos estáticos (css, js, imágenes, etc.).


 

 


Conclusión

La clase   implementa la interfaz  , que el servidor de aplicaciones carga al iniciar la aplicación y permite agregar el servlet   en tiempo de ejecución desde código Java.

La clase   permite una configuración basada en Java más detallada del servlet de Spring MVC ( ).

~~~

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de apolonioluis

En netbeans 8.0.1 marca error

me marca que este paquete: import java.util.stream.Collectors no existe en SnippetServiceImpl.java

 

uso netbeans casi recien instalado sin ningun plugin agregado, windows 7 64, el servidor es tomcat 7, 8gb ram, ssd primario de 120 gb y disco de de trabajo de sata de 500gb, amd A6-3670,

mi trabajo principal lo hago con jsp y servlets directos y quiero hacer pruebas con spring.

Re: Error

 

La clase   (1) fue agregada en Java 8, de manera que necesitas el JDK respectivo. Una vez que lo hayas instalado, cambia la ruta del JDK ( ) en el archivo  .

También puedes hacer el downgrade de Java 8 a Java 7/6.


Notas

~~~

Imagen de ruco

help

Homi!! instale eclipse con sus plugin spring nmmm
Como podras ver soy nuevo en este jale y kiero aprender a usar Spring
y estoy tratando de hacer la prueba del hola mundo pero me marca un error en el
pom.xml
exactamente en esta linea
war
que me falta

Re: hola mundo con Spring

... estoy tratando de hacer la prueba del hola mundo ...

Algunos ejemplos:


P.D. Google es tu mejor amigo. También YouTube. Por cierto, si quieres publicar código, prueba poniéndolo entre las etiquetas <code> y </code>.

~~~