http://blog.sina.com.cn/s/blog_82a09f1001018wt3.html
Groovy 是 “用于 Java 虚拟机的一种敏捷的动态语言”,它 “以 Java 的强大功能 为基础,同时又包含由 Python、Ruby 和 Smalltalk 等语言带来的强大附加功能 ”,例如动态类 型转换、闭包和元编程(metaprogramming)支持。它是一种 成熟的面向对象编程语 言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。
Groovy 特别适合与 Spring 的动态语言支持一 起使用,因为它是专门为 JVM 设计的,设计时充分考虑了 Java 集成,这使 Groovy 与 Java 代码的互 操作很容易。它的类 Java 语法对于 Java 开发人员来说也很自然。
在Spring中动态使用Groovy脚本
(1)首先 编写java的业务接口类
package com.springandgroovy;
public interface HelloWorldService {
String sayHello();
}
(2) 编写groovy类实现这个接口(注意:该文件名是HelloWorldServiceImpl.groovy)
package com.springandgroovy;
public class HelloWorldServiceImpl implements HelloWorldService{
String name;
String sayHello(){
return "Hello $name!!!. Welcome to Scripting in Groovy.";
}
}
(3)比较关键的是spring配置文件,在文件的头部需要lang的名字空间,以便识别 <lang:groovy ...
<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="helloWorldService"
script-source="classpath:com/springandgroovy/HelloWorldServiceImpl.groovy">
<lang:property name="name" value="meera"/>
</lang:groovy>
</beans>
(4) 另外,可以设置默认的延时刷新时间:
<lang:defaults refresh-check-delay=”60000″ />
<lang:groovy id=”helloWorldService” refresh-check-delay=”1000″
script-source=”classpath:com/springandgroovy/HelloWorldServiceImpl.groovy”>
<lang:property name="name" value="meera"/>
</lang:groovy>
(5)测试
package com.springandgroovy;
import java.io.IOException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) throws IOException {
ApplicationContext context = new ClassPathXmlApplicationContext("groovySpring.xml");
HelloWorldService service = (HelloWorldService) context.getBean("helloWorldService");
System.in.read();
System.out.println(service.sayHello());
}
}
(6)还可以将HelloWorldServiceImpl写在spring的配置文件中,如下所示:(不提倡使用此方法)
<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="helloWorldService"
script-source="classpath:com/springandgroovy/HelloWorldServiceImpl.groovy">
<lang:property name="name" value="meera">
</lang:groovy>
-->
<lang:groovy id="helloWorldService">
<lang:inline-script>
<![CDATA[
package com.springandgroovy;
public class HelloWorldServiceImpl implements HelloWorldService{
String name;
String sayHello(){
return "Hello $name. Welcome to Scripting in Groovy.";
}
}
]]>
</lang:inline-script>
<lang:property name="name" value="meera"></lang:property>
</lang:groovy>
</beans>
相关推荐
在描述中提到的博客链接(由于实际无法访问,这里仅做理论分析),可能会详细探讨如何在实际项目中结合Groovy和Spring进行Web开发,包括Groovy的脚本配置、Bean定义、以及可能的Grails框架应用实例。 标签"源码"和...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
- Groovy可以无缝集成到Spring框架中,创建Spring Bean和配置文件。 - 与Java EE平台集成,如EJB、JMS、JPA等,提供了更简单的API和更灵活的编程模型。 - 与大数据技术结合,如Apache Kafka、Hadoop等,可以编写...
Groovy,一种基于Java平台的动态编程语言,以其简洁、灵活的语法和强大的功能在IT行业中赢得了广泛的关注。本资源“实战Groovy.rar”旨在通过实践案例帮助开发者深入理解和掌握Groovy的精髓,从而提升开发效率和代码...
Spring Boot与Groovy的结合也是常见的应用场景,Groovy的简洁语法使得配置Spring Bean变得简单易懂。 Groovy还广泛应用于持续集成工具Jenkins的脚本编写,通过Jenkinsfile来定义构建流程。此外,Spock是一个用于...
通过简单的依赖引入和配置,开发者可以快速地在Spring Boot应用中启用HikariCP连接池,提升数据库操作的性能和稳定性。HikariCP的诸多特性,如高效的连接管理和并发控制,使其成为现代Java应用的首选连接池实现。在...
在Spring Boot中使用Groovy,可以极大地简化代码,提高开发效率,尤其在处理动态脚本和自动化任务时。本文将深入探讨如何在Spring Boot项目中集成Groovy,并通过两种方式实现动态执行:通过Groovy文件执行脚本和通过...
本书由Manning Publications出版,全面覆盖了Groovy语言的基础知识、高级特性以及在实际项目中的应用。 ### Groovy简介 Groovy是一种灵活的、面向对象的脚本语言,它运行于Java平台之上,充分利用了Java的生态系统...
3. **Grails框架**:基于Groovy的Web开发框架,它简化了Spring Boot和Hibernate等技术的使用,提高了开发效率。 4. **领域特定语言(DSL)**:Groovy的简洁语法使得构建DSL变得简单,例如配置文件、测试框架或数据库...
jasypt-spring-boot是Jasypt为Spring Boot定制的一个集成库,它可以自动配置Spring Boot的环境,使得我们可以在配置文件中使用加密的属性值。通过简单的步骤,我们就可以将敏感信息如数据库密码、API密钥等加密存储...
- **编译为Java字节码**:可直接编译成Java字节码,因此可以在任何可以使用Java的地方使用Groovy。 #### 二、Groovy入门 - **简单示例**:“Hello World”脚本展示了Groovy的基本语法: ```groovy def name = '...
在Java生态系统中,Groovy以其灵活性和与Java的良好互操作性而受到广泛关注。本篇文章将深入探讨Groovy的最新学习动态,特别是它在敏捷开发、动态语言特性以及Web应用开发中的应用。 首先,让我们来理解Groovy的...
5. **领域特定语言(DSLs)**:Groovy非常适合构建DSLs,使得创建定制的配置文件或脚本语言变得简单,例如Grails框架就使用Groovy构建其DSL。 6. **GroovyShell和GroovyConsole**:这两个工具提供了交互式环境,...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
Grails和Groovy是两个密切相关的技术,它们在IT领域,尤其是Web开发中扮演着重要角色。Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,提供了丰富的功能,而Groovy则是一种面向Java平台的动态编程...
Groovy 的类和对象可以直接在Grails中使用,而Grails的框架特性则为Groovy的应用提供了丰富的生态支持。开发者可以使用Groovy编写Grails应用的模型、服务、控制器和视图,从而充分利用Groovy的生产力优势。 总结,...
5. **GString与字符串操作**:Groovy的GString是一种可以包含表达式的字符串,它允许你在字符串中嵌入变量值。Groovy还提供了丰富的字符串操作方法,比如`tokenize`, `trim`, `split`等。 6. **集合操作**:Groovy...
这部分可能会介绍如何编写简单的脚本,以及如何使用Groovy Shell和 Grape(Groovy的依赖管理工具)。 8. **并发和异步编程**:Groovy提供了对Java并发API的简洁封装,如Future和Promise,以及对反应式编程的支持。...