Spring (Web)- Empezando el trabajo con Anotaciones

Después de la lista de las anotaciones mas importantes/frecuentes en Spring, creo que ha llegado el momento de empezarlas a utilizar. Insisto en que anotaciones puede que no sea la solución completa, y que para según que definiciones, deberemos acudir al XML. pero si que es cierto que nos facilita mucho la vida; de forma que vamos a ver que es lo que nos ofrece.

Iniciamos un nuevo proyecto de Spring, utilizando el IDE que instalamos anteriormente (STS). Para ello, seleccionamos “File”:

Eclipse, Spring y STS. Iniciando elproyecto

Si en la lista no os aparece Spring, haced clic en “Project” y en la nueva pantalla:

Nuevo proyecto Spring, en STS

Pulsamos en “Spring Project” y nos aparece la pantalla para la creación del proyecto:

Creacion Proyecto Spring MVC en STSY allí, le podemos indicar el nombre del proyecto,y el tipo, que de momento vamos a dejar como “Spring MVC”.

Si es la primera vez, os pedirá autorización para descargar las plantillas, y luego nos pedirá el nombre del paquete en el que vamos a montar el aplicativo; nosotros lo haremos en com.rf.anotaciones.

Spring y Eclipse. Nombre del paquete

y ya podemos pulsar en “Finish”, para que se cierre el asistente y podamos empezar a codificar.

El proyecto va a ser el reescribir nuestro conocido “Hola Mundo” para web, pero utilizando anotaciones y configuración desde Java.

Nuestro IDE nos habrá creado dentro del paquete principal que hemos indicado, un fichero llamado “HomeController.java”, que queda definido como controlador por defecto, osea que será el que se llamara cuando no indiquemos pagina, gracias a la anotación “@RequestMapping”


2015-07-20_17h09_31Luego volveremos a él, ahora vamos a crear nuestra clase de trabajo, llamada HolaMundo.java

2015-07-20_17h30_27

2015-07-20_17h31_28

El contenido sera,como siempre muy sencillo,ya que solo queremos mostrar como funcionan las anotaciones.

Spring. Clase hola Mundo con anotaciones

Solo un atributo, privado como buen bean, y sus correspondientes métodos get y set, dejando que el método get deje rastro en la consola.

Si no utilizáramos anotaciones, ahora deberíamos ir a:

 src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

y definir el bean…os acordáis?:

<beans>
    holaMundo" class="com.rf.anotaciones.HolaMundo"/>
</bean>

Pero como vamos a realizar las configuraciones con java, no pasaremos por ese fichero; en su lugar, vamos a crear un paquete nuevo, dentro de la carpeta src/main/java para guardar las configuraciones que necesitemos, para ello:

Eclipse y spring. Anotaciones. Crear paquetey llamamos al paquete, por ejemplo:

Spring. paquete para configurar por anotaciones

 

y dentro, podemos definir ya la pseudoclase HolaMundoConfig:

Spring con anotaciones. Eclipse. Creacion de la clase de configuracionSu contenido, solo debe reflejar el método de creación del Bean, para el que utilizaremos la anotación “@Bean”, y que en este caso es el constructor por defecto, con lo que quedará mas o menos así:

Spring configuracion con clases Java

 

Podemos ir a modificar nuestro HomeController para que utilice la nueva clase:

SpringSolo he tenido que hacer dos modificaciones, la primera (1) defino el objeto HolaMundo y dejo que Spring lo inyecte desde el bean con el mismo nombre (@Autowired), para lo cual, deberá encontrar la clase HolaMundoConfig y la clase HolaMundo, luego veremos como.

La segunda modificación utiliza la nueva clase, cargándole un mensaje, y luego recuperándolo, y enviandoselo a la vista.

Desde el punto de vista de codificación, todavía nos queda una cosa para hacer, que será modificar la vista para que acepte un segundo campo llamado “segundomensaje”.

Abrimos la carpeta de vista, por defecto:

 src/main/webapp/WEB-INF/spring/views

y modificamos el fichero “home.jsp”

2015-07-20_18h38_48

para añadir la linea marcada.

Al haber utilizado un paquete distinto para la configuración, (definición de bean), deberemos indicar a Spring que debe escanear otro paquete, y para eso, si que necesitamos abrir :

src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

Servlet. Component-scan. Spring con anotaciones

y añadir ese paquete a los que ha de escanear.

Por ultimo, en Spring 3 aparece un error cuando se configura con clases Java:

CGLIB is required to process @Configuration classes

La solución está en abrir el fichero “pom.xml” y añadir la dependencia de “cglib”, como:

Spring 3. Añadir dependencia de CGLIB

Ahora si que hemos terminado, podéis “Run as Server”

2015-07-20_18h50_41y en la siguiente pantalla,

Spring, Eclipse. Lanzar aplicacion en servidorcon lo que veremos en nuestra pantalla:

Spring. Presentacion final HolaMundo

En el articulo anterior vimos este mismo ejercicio para la linea de comando, yo os invito a que lo comparéis, y de paso a que probeis de reutilizar las clases desarrolladas con este ejemplo, para realizar el anterior. No os debería costar demasiado el adaptarlo.

 

 

 

 

 

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Spring y etiquetada , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.