了解知识

在 spring 中使用 groovy 等动态语言的好处就是:在服务器上改改或新加个 groovy 文件就可以有新的功能,不用重新打包并部署。对一些规则性的逻辑处理、动态性强的应用可以 groovy。

示例下在 spring 中使用 groovy,我机子环境 spring 2.5.5, groovy-1.5.7。

1、模拟业务接口:

Java代码
package com.chenlb.groovy;

/**
* 业务模拟接口
*
* @author chenlb 2009-4-7 下午02:04:38
*/
public interface Hello {

String say(String name);
}


2、groovy 实现:

Groovy代码
package com.chenlb.groovy;

class GroovyHello implements Hello {

def blog;

String say(String name) {
return "Hello ${name}@${blog}"
}

void setUrl(String blog) {
this.blog = blog;
}
}

3、spring 配置 applicationContext-groovy.xml:

Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd">

<lang:groovy id="groovyHello" script-source="classpath:com/chenlb/groovy/GroovyHello.groovy">
<lang:property name="blog" value="http://blog.chenlb.com"></lang:property>
</lang:groovy>
</beans>

4、运行:
Java代码
package com.chenlb.groovy;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Main {

public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext("classpath:applicationContext-groovy.xml");

Hello hello = (Hello) context.getBean("groovyHello");

System.out.println(hello.say("chenlb"));
}

}


结果:

Hello chenlb@http://blog.chenlb.com

要在 spring 中用 groovy,依赖的jar有:antlr-2.7.6.jar、aopalliance.jar、asm-2.2.3.jar、asm-commons-2.2.3.jar、asm-util-2.2.3.jar、groovy-1.5.5.jar在spring 的 lib中可以找到,还有spring-aop-2.5.5.jar。当然也可以把groovy-1.5.5.jar换成groovy-1.5.7.jar  

标签: Groovy
扩展知识