Ir al contenido principal

Aplicación básica Spring MVC 3.2

Aplicación basada en:
  • Spring 3.2.1
  • Hibernate 4.1.9
Utilizaré Maven para administrar la aplicación por lo que pueden utilizar NetBeans, IntelliJ, Eclipse o un editor de textos si así lo desean :)

Para los que ya tienen experiencia y sólo necesitan ver los archivos, estos se encuentran en mi proyecto demo en github.

Primero necesitas crear el proyecto base con
mvn archetype:generate

Y buscar la opción de aplicación web JEE ó crear una aplicación web con maven con cualquier IDE que lo soporte. Luego necesitamos asegurarnos de tener estas dependencias (el orden es importante):
Puedes encontrar el pom.xml aquí

El web.xml ya no es necesario en una aplicación web JEE 6, pero dado que estoy utilizando los perfiles de Spring (aunque esos creo que se pueden configurar sin el XML) y unas páginas de errores, estas necesitan estar en el web.xml, como lo muestro aquí, claro que puedes poner más cosas pero son las que necesitamos para nuestro proyecto.
Ahora los archivos que configuran Spring, aunque todos pueden estar en uno sólo, decidí separarlos para cuestiones de legibilidad (todos los puedes encontrar aquí) (Para que no tengas errores de compilación al hacer el DataConfig.java, necesitas hacer primero el PropertyPlaceHolder.java): Con el ComponentConfig habilitamos la búsqueda automática de componentes de Spring en la ruta que especificamos en @ComponentScan, en el DataConfig configuramos el acceso a base de datos y en este ejemplo utilizo dos ambientes: production y tests. Cuando corre toma la configuración que va a utilizar del web.xml. En el PropertyPlaceHolder configuramos propiedades que no queremos que estén en nuestro control de versiones(IP's, contraseñas, etc.) y por último el WebConfig, donde habilitamos Spring MVC, configuramos algunas cosas como si vamos a utilizar jsp's y dónde las tiene que encontrar, la internacionalización y también tengo un filtro que intercepta las peticiones para ponerles el idioma que el usuario quiere utilizar en la página y la cambia con ?locale=xx, en donde xx se sustituye por el idioma (es, en, pt, etc). Ahora si arrancamos nuestra aplicación ahora Spring todavía no estará cargado en nuestra aplicación. Esto se debe a que no lo configuramos en el web.xml y porque nos falta o ya sea cargarlo ahí o cargarlo con Java, vamos a hacer está última:
En esta clase configuramos Spring, y otros filtros como el de codificación de caracteres para que intercepte las peticiones y las haga UTF-8. Y ahora sí, cuando levantemos nuestra aplicación esta va a estar trabajando con Spring MVC 3.2 funcionando. Para que la aplicación tenga una base sólida en HTML5 pueden utilizar http://html5boilerplate.com/ y http://getbootstrap.com/

Comentarios

Entradas más populares de este blog

OpenSolaris, Clúster de Glassfish y Sun Java Web Server Loadbalancer

Pues estuve necesitando un clúster de Glassfish V2U2 para lo cual encontré rápidamente mucha información en Internet, el que más me gustó fue un blog de Ryan Wilson , pero también necesitaba poner el balanceador de cargas ( loadbalancer ) asi que para eso utilicé la documentación de Glassfish . Aquí el resúmen: Instalar OpenSolaris 200805 y despues realizar lo que les sugieren en los Release Notes , en donde te dicen que actualices su herramienta para instalar paquetes. NOTA: Antes de hacer esto, asegurarse de tener todas las máquinas que van a participar dentro del cluster mapeadas con un DNS, de no ser esto posible sus archivos de hosts deben de tener la información suya y de cada una de las máquinas que van a participar. (Gracias a equipo Telcel) Despues de esto seguir las instrucciones de Ryan . Con esto vas a tener el cluster de glassfish funcionando. Solo que en la configuración del segundo servidor puedes hacer lo siguiente para evitar los pasos 4 al 6 (lo siguiente todo en una

Reporte Excel con JasperReports

Pues no funcionó el reporte con Jasper, pude hacer que evitara paginar con estas opciones ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); JRXlsExporter exporterXLS = new JRXlsExporter(); exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); // exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE); exporterXLS.s

Migración de Webspace a Liferay

Deseas cambiar de webspace de sun a liferay? Tengo una instalación de webspace basado en liferay 5.2.2 y decidimos actualizar a la versión 5.2.3, ya que liferay acaba de liberar su versión 6.0.0. SGCampus es uno de los sitios administrados en esa instancia, visítalo. Para la migración fue necesario montarlo en una máquina virtual, en la cual estuvimos probando hasta que le dimos... una vez encontrados los pasos apropiados para la migración es bastante sencillo (CUIDADO: Siga este procedimiento bajo su responsabilidad). Las especificaciones del servidor son: Web Space Server 10.1 Community Build 2, esto está instalado sobre un glassfish v2 y conectado a una base de datos MySQL 5. Descomprimir liferay en donde lo vas a usar en el servidor (yo lo pongo en /opt/portal/liferay-portal-5.2.3) Respaldar directorio donde webspace sube los archivos del portlet de documentos, en mi caso se encuentra en [instalación de webspace]/var/webspace/data y ponerla en [instalación de liferay]/data, qu