Spring 3.1: Profiles

La semana pasada me pasé un rato por la

La impresión principal que me llevé es de pequeña decepción…y no por la calidad de las presentaciones si no porque en algunos momentos creí estar en una Grails I/O, no es una Spring I/O.

Sólo así se entiendo que no dedicaran ni una charla a Spring Roo y si varias a Grails…pero bueno…es mi opinión.

Muy interesante y útil me resultó la charla que abría la conferencia: Spring in 2011 and Beyond: From Java EE 6 to Cloud Computing de Juergen Hoeller.

En ella se repasaban las novedades de Spring 3.1, de estas me quedo sobre todas con el concepto de Profiles: no es que sea una gran revolución pero si es algo que hasta ahora había que hacer más o menos manualmente o vía scripts.

Los profiles permiten usar un Bean u otro en función del Entorno en el que te encuentres, seguro que con ver estas líneas os hacéis una idea de lo que quiero decir:

<beans profile=»desarrollo»>
<bean destroy-method=»close» id=»dataSource»>
<property name=»driverClassName» value=»${database.driverClassName}»/>
<property name=»url» value=»${database.url}»/>
<property name=»username» value=»${database.username}»/>
<property name=»password» value=»${database.password}»/>
</bean>
</beans>
<beans profile=»produccion»>
<jee:jndi-lookup id=»dataSource» jndi-name=»java:comp/env/jdbc/datasource»/>
</beans>

 

Lo explico: cuando estamos en desarrollo o en nuestro entorno local normalmente no usamos un Pool de conexiones si no un DataSource como el de DBCP. Cuando pasamos a Producción usamos el DataSource JNDI.

Spring 3.1 permite definir profiles, de modo que en función del Profile en el que nos encontremos se carga un Bean u otro.

Existen varias formas de activar un Profile u otro:

1) Como variable de Entorno:

-Dspring.profiles.active=»profile1,profile2″

2) Desde el DispatcherServlet:

3) Programáticamente:

Lástima que no esté disponible en Spring 3.0, verdad?

Spring 3.1 M1 se ha publicado el 11 de febrero.

Deja un comentario