https://dosideas.com/wiki/api.php?action=feedcontributions&user=195.77.63.25&feedformat=atomDos Ideas. - Contribuciones del usuario [es]2024-03-29T13:59:28ZContribuciones del usuarioMediaWiki 1.28.2https://dosideas.com/wiki/index.php?title=Groovy_Con_Spring&diff=6096Groovy Con Spring2011-08-24T13:46:50Z<p>195.77.63.25: /* Ver también */</p>
<hr />
<div>[[Spring Framework]] tiene soporte para integrar [[Groovy]] como un bean normal más. Además de [[Groovy]], es posible integrar otros lenguajes dinámicos, como JRuby y BeanShell. <br />
<br />
==Librerías necesarias==<br />
Se deben incluir las siguientes librerias: <br />
* groovy-1.0.jar<br />
* asm-2.2.2.jar<br />
* antlr-2.7.6.jar<br />
<br />
Todas vienen junto a la distribución de Groovy.<br />
<br />
==Ejemplo==<br />
En este ejemplo crearemos una interfaz en [[Java]], la implementaremos en Groovy, y la declareremos como un bean más en Spring. <br />
===El código===<br />
Necesitamos crear 3 archivos: <br />
* La interfaz ''Mensajero.java''<br />
* La implementación en groovy ''MensajeroImpl.groovy''<br />
* La configuración de Spring<br />
<br />
==== La interfaz: Mensajero.java ====<br />
<code java><br />
package com.dosideas.dynlang;<br />
<br />
public interface Mensajero {<br />
String decirHola(String nombre);<br />
}<br />
</code><br />
<br />
==== El script de implementación: MensajeroImpl.groovy ====<br />
<code groovy><br />
package com.dosideas.dynlan.groovy;<br />
<br />
import com.dosideas.dynlang.Mensajero<br />
<br />
class MensajeroImpl implements Mensajero {<br />
<br />
String decirHola(String nombre) {<br />
"Hola, " + nombre;<br />
}<br />
}<br />
</code><br />
<br />
==== Configuración de Spring: applicacion.xml ====<br />
<code xml><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<beans xmlns="http://www.springframework.org/schema/beans"<br />
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
xmlns:lang="http://www.springframework.org/schema/lang"<br />
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd"><br />
<br />
<lang:groovy id="mensajero" <br />
script-source="classpath:MensajeroImpl.groovy" /><br />
<br />
</beans><br />
</code><br />
<br />
=== Test ===<br />
Crearemos un test que ejecute esta lógica. Accedemos directamente al bean ''mensajero'', como si fuera un bean normal. <br />
<br />
<code java><br />
@RunWith(SpringJUnit4ClassRunner.class)<br />
@ContextConfiguration(locations = {<br />
"/application.xml"<br />
})<br />
public class MensajeroTest {<br />
<br />
@Autowired<br />
private Mensajero instance;<br />
<br />
@Test<br />
public void decirHola() throws InterruptedException {<br />
String nombre = "Zim";<br />
String result = instance.decirHola(nombre);<br />
String expResult = "Hola, " + nombre;<br />
assertEquals(expResult, result);<br />
}<br />
}<br />
</code><br />
<br />
== Cambios en caliente ==<br />
Es posible hacer que el script sea modificado y recompilado "en caliente". Es decir, teniendo a nuestra aplicación corriendo, podemos modificar la lógica del script y la misma comenzará a ejecutarse en caliente, sin necesidad de ningún otro cambio. Esta es sin dudas una de las características más interesantes de usar lenguajes dinámicos con Java.<br />
<br />
Para activar esta característica hay que usar el atributo ''refresh-check-delay'' al momento de declarar el bean en Spring, el cual le indicará cada cuántos milisegundos debe buscar cambios en el script. Por ejemplo: <br />
<code xml><br />
<lang:groovy id="messenger" <br />
script-source="classpath:Messenger.groovy" <br />
refresh-check-delay="1000"/><br />
</code><br />
<br />
== Ver también ==<br />
* [[Groovy]]<br />
* [http://www.dosideas.com/descargas/category/2-spring-framework.html?download=13%3Agroovy-con-spring Descargar proyecto de ejemplo de integración entre Groovy y Spring]<br />
* [http://static.springframework.org/spring/docs/2.0.x/reference/dynamic-language.html Manual de Spring, Dynamic language support ]<br />
<br />
[[Category:Spring Framework]]<br />
[[Category: Groovy]]</div>195.77.63.25https://dosideas.com/wiki/index.php?title=Groovy_Con_Spring&diff=6095Groovy Con Spring2011-08-24T13:38:11Z<p>195.77.63.25: /* Ver también */</p>
<hr />
<div>[[Spring Framework]] tiene soporte para integrar [[Groovy]] como un bean normal más. Además de [[Groovy]], es posible integrar otros lenguajes dinámicos, como JRuby y BeanShell. <br />
<br />
==Librerías necesarias==<br />
Se deben incluir las siguientes librerias: <br />
* groovy-1.0.jar<br />
* asm-2.2.2.jar<br />
* antlr-2.7.6.jar<br />
<br />
Todas vienen junto a la distribución de Groovy.<br />
<br />
==Ejemplo==<br />
En este ejemplo crearemos una interfaz en [[Java]], la implementaremos en Groovy, y la declareremos como un bean más en Spring. <br />
===El código===<br />
Necesitamos crear 3 archivos: <br />
* La interfaz ''Mensajero.java''<br />
* La implementación en groovy ''MensajeroImpl.groovy''<br />
* La configuración de Spring<br />
<br />
==== La interfaz: Mensajero.java ====<br />
<code java><br />
package com.dosideas.dynlang;<br />
<br />
public interface Mensajero {<br />
String decirHola(String nombre);<br />
}<br />
</code><br />
<br />
==== El script de implementación: MensajeroImpl.groovy ====<br />
<code groovy><br />
package com.dosideas.dynlan.groovy;<br />
<br />
import com.dosideas.dynlang.Mensajero<br />
<br />
class MensajeroImpl implements Mensajero {<br />
<br />
String decirHola(String nombre) {<br />
"Hola, " + nombre;<br />
}<br />
}<br />
</code><br />
<br />
==== Configuración de Spring: applicacion.xml ====<br />
<code xml><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<beans xmlns="http://www.springframework.org/schema/beans"<br />
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
xmlns:lang="http://www.springframework.org/schema/lang"<br />
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd"><br />
<br />
<lang:groovy id="mensajero" <br />
script-source="classpath:MensajeroImpl.groovy" /><br />
<br />
</beans><br />
</code><br />
<br />
=== Test ===<br />
Crearemos un test que ejecute esta lógica. Accedemos directamente al bean ''mensajero'', como si fuera un bean normal. <br />
<br />
<code java><br />
@RunWith(SpringJUnit4ClassRunner.class)<br />
@ContextConfiguration(locations = {<br />
"/application.xml"<br />
})<br />
public class MensajeroTest {<br />
<br />
@Autowired<br />
private Mensajero instance;<br />
<br />
@Test<br />
public void decirHola() throws InterruptedException {<br />
String nombre = "Zim";<br />
String result = instance.decirHola(nombre);<br />
String expResult = "Hola, " + nombre;<br />
assertEquals(expResult, result);<br />
}<br />
}<br />
</code><br />
<br />
== Cambios en caliente ==<br />
Es posible hacer que el script sea modificado y recompilado "en caliente". Es decir, teniendo a nuestra aplicación corriendo, podemos modificar la lógica del script y la misma comenzará a ejecutarse en caliente, sin necesidad de ningún otro cambio. Esta es sin dudas una de las características más interesantes de usar lenguajes dinámicos con Java.<br />
<br />
Para activar esta característica hay que usar el atributo ''refresh-check-delay'' al momento de declarar el bean en Spring, el cual le indicará cada cuántos milisegundos debe buscar cambios en el script. Por ejemplo: <br />
<code xml><br />
<lang:groovy id="messenger" <br />
script-source="classpath:Messenger.groovy" <br />
refresh-check-delay="1000"/><br />
</code><br />
<br />
== Ver también ==<br />
* [[Groovy]]TONTO<br />
* [http://www.dosideas.com/descargas/category/2-spring-framework.html?download=13%3Agroovy-con-spring Descargar proyecto de ejemplo de integración entre Groovy y Spring]<br />
* [http://static.springframework.org/spring/docs/2.0.x/reference/dynamic-language.html Manual de Spring, Dynamic language support ]<br />
<br />
[[Category:Spring Framework]]<br />
[[Category: Groovy]]</div>195.77.63.25