Importar librerias JS como web resources Spring.

Spring MVC permite mapear las peticiones a una determinada ruta URL, hacia contenidos estáticos (JS, CSS, imagenes, …) que se encuentren en otra localización como el classpath, otro servidor, etc. Esto se consigue mediante la anotación del fichero webmvc-config.xml.

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources -->
<mvc:resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**"/>

Conociendo lo anterior podemos poner en juego una buena práctica, que consiste en empaquetar en un .jar las librerias JS que utilize nuestra aplicación, por ejemplo el framework JS Dojo. Y publicarlas como recurso web con Spring. De esta forma no tenemos que incluir en el código fuente de nuestra aplicación dichas librerias (con miles de ficheros .js). Lo que a la vez supone tener que versionar esos ficheros en nuestro SVN, dificulta el cambio de version de la libreria en cuestión, etc.

Como ejemplo creamos la libreria dojo-js-resources-1.7.1.jar con la estructura:
/META-INF/web-resources/
/dijit/
/dojo/
/dojox/

y la publico en mi repositorio maven. Podemos añadirla a cualquier proyecto con esta dependencia maven:

<dependency>
  <groupId>com.mylibs.dojo</groupId>
  <artifactId>dojo-js-resources</artifactId>
  <version>1.7.1</version>
</dependency>

lo que hará que este disponible en nuestro classpath, y que spring la publique en resources. Una URL de ejemplo sería: http://localhost:8080/myapp/resources/dojo/dojo.js

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s