文档章节

Groovy在Spring中的简单使用

訫犫
 訫犫
发布于 2016/01/26 20:20
字数 557
阅读 244
收藏 3




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>


本文转载自:http://blog.sina.com.cn/s/blog_82a09f1001018wt3.html

訫犫
粉丝 1
博文 22
码字总数 8459
作品 0
浦东
私信 提问
加载中

评论(1)

公孙二狗
公孙二狗
能把 Groovy 的Maven依赖加上会更好,否则不了解的人这个程序是跑不起来的。
基于Groovy实现Spring Bean的动态加载

Spring对Groovy有着良好的支持,能把Groovy实现类作为Bean来使用,在前一篇Blog《Spring对Groovy Bean的支持》有详细的描述http://my.oschina.net/joshuazhan/blog/137940。基于Groovy Bean...

joshuazhan
2013/07/15
0
12
【Spring Boot 实战开发】第3讲 Kotlin扩展函数

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。在 Java 开发领域的诸多著名框架:Spring 框架及其衍生框架、做缓存Redis、消息...

程序员诗人
2018/04/20
0
0
Spring对Groovy Bean的支持

Groovy是一个基于JVM的动态语言,对于一个Java开发者,它最让我喜欢的地方就是兼容Java的语法,学习使用成本低。从2.0版本开始,Spring就对Groovy这些动态语言提供了支持,结合Spring和Groov...

joshuazhan
2013/06/16
0
2
【Spring Boot 开发实战】第2讲 Kotlin类型系统与空安全

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。在 Java 开发领域的诸多著名框架:Spring 框架及其衍生框架、做缓存Redis、消息...

程序员诗人
2018/04/19
0
0
【Spring Boot 开发实战】第1讲 Kotlin 的极简特性之:隐式类型与函数式编程

《Spring Boot 开发实战》—— 基于 Gradle + Kotlin 的企业级应用开发最佳实践 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。...

程序员诗人
2018/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
7
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部