`

Groovy在Spring中的简单使用

 
阅读更多

http://blog.sina.com.cn/s/blog_82a09f1001018wt3.html

 

 

Groovy 是 用于 Java 虚拟机的一种敏捷的动态语言,它 以 Java 的强大功能 为基础,同时又包含由 PythonRuby 和 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和Spring进行Web开发,包括Groovy的脚本配置、Bean定义、以及可能的Grails框架应用实例。 标签"源码"和...

    Spring-Reference_zh_CN(Spring中文参考手册)

    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-all-2.4.8.jar

    - Groovy可以无缝集成到Spring框架中,创建Spring Bean和配置文件。 - 与Java EE平台集成,如EJB、JMS、JPA等,提供了更简单的API和更灵活的编程模型。 - 与大数据技术结合,如Apache Kafka、Hadoop等,可以编写...

    实战groovy.rar

    Groovy,一种基于Java平台的动态编程语言,以其简洁、灵活的语法和强大的功能在IT行业中赢得了广泛的关注。本资源“实战Groovy.rar”旨在通过实践案例帮助开发者深入理解和掌握Groovy的精髓,从而提升开发效率和代码...

    Groovy学习资料

    Spring Boot与Groovy的结合也是常见的应用场景,Groovy的简洁语法使得配置Spring Bean变得简单易懂。 Groovy还广泛应用于持续集成工具Jenkins的脚本编写,通过Jenkinsfile来定义构建流程。此外,Spock是一个用于...

    Spring Boot如何使用HikariCP连接池详解

    通过简单的依赖引入和配置,开发者可以快速地在Spring Boot应用中启用HikariCP连接池,提升数据库操作的性能和稳定性。HikariCP的诸多特性,如高效的连接管理和并发控制,使其成为现代Java应用的首选连接池实现。在...

    groovy集成springboot动态执行

    在Spring Boot中使用Groovy,可以极大地简化代码,提高开发效率,尤其在处理动态脚本和自动化任务时。本文将深入探讨如何在Spring Boot项目中集成Groovy,并通过两种方式实现动态执行:通过Groovy文件执行脚本和通过...

    groovy in action.pdf

    本书由Manning Publications出版,全面覆盖了Groovy语言的基础知识、高级特性以及在实际项目中的应用。 ### Groovy简介 Groovy是一种灵活的、面向对象的脚本语言,它运行于Java平台之上,充分利用了Java的生态系统...

    apache-groovy 2.4.13

    3. **Grails框架**:基于Groovy的Web开发框架,它简化了Spring Boot和Hibernate等技术的使用,提高了开发效率。 4. **领域特定语言(DSL)**:Groovy的简洁语法使得构建DSL变得简单,例如配置文件、测试框架或数据库...

    jasypt-spring-boot使用说明

    jasypt-spring-boot是Jasypt为Spring Boot定制的一个集成库,它可以自动配置Spring Boot的环境,使得我们可以在配置文件中使用加密的属性值。通过简单的步骤,我们就可以将敏感信息如数据库密码、API密钥等加密存储...

    groovy 1.7官方教程

    - **编译为Java字节码**:可直接编译成Java字节码,因此可以在任何可以使用Java的地方使用Groovy。 #### 二、Groovy入门 - **简单示例**:“Hello World”脚本展示了Groovy的基本语法: ```groovy def name = '...

    groovy 最新 学习 动态

    在Java生态系统中,Groovy以其灵活性和与Java的良好互操作性而受到广泛关注。本篇文章将深入探讨Groovy的最新学习动态,特别是它在敏捷开发、动态语言特性以及Web应用开发中的应用。 首先,让我们来理解Groovy的...

    apache-groovy-sdk-3.0.8.zip

    5. **领域特定语言(DSLs)**:Groovy非常适合构建DSLs,使得创建定制的配置文件或脚本语言变得简单,例如Grails框架就使用Groovy构建其DSL。 6. **GroovyShell和GroovyConsole**:这两个工具提供了交互式环境,...

    Spring中文帮助文档

    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学习资料

    Grails和Groovy是两个密切相关的技术,它们在IT领域,尤其是Web开发中扮演着重要角色。Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,提供了丰富的功能,而Groovy则是一种面向Java平台的动态编程...

    Grails-开源框架---使用指南.pdf与Groovy入门经典(中文).pdf(2合一)

    Groovy 的类和对象可以直接在Grails中使用,而Grails的框架特性则为Groovy的应用提供了丰富的生态支持。开发者可以使用Groovy编写Grails应用的模型、服务、控制器和视图,从而充分利用Groovy的生产力优势。 总结,...

    groovy初学者的福音

    5. **GString与字符串操作**:Groovy的GString是一种可以包含表达式的字符串,它允许你在字符串中嵌入变量值。Groovy还提供了丰富的字符串操作方法,比如`tokenize`, `trim`, `split`等。 6. **集合操作**:Groovy...

    Groovy IN ACTION

    这部分可能会介绍如何编写简单的脚本,以及如何使用Groovy Shell和 Grape(Groovy的依赖管理工具)。 8. **并发和异步编程**:Groovy提供了对Java并发API的简洁封装,如Future和Promise,以及对反应式编程的支持。...

Global site tag (gtag.js) - Google Analytics