栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 之 Groovy的巧妙之处

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 之 Groovy的巧妙之处

文章目录

目录

文章目录

一、groovy是什么?

二、使用步骤

1.引入库

2.JAVA调用groovy

java有三种方式调用groovy脚本。但是真正在实际的服务器环境中,嵌入groovy脚本往往需要满足下面的条件:

通过GroovyShell来执行groovy脚本

通过GroovyClassLoader动态加载Groovy Class

使用GroovyscriptEngine脚本引擎加载Groovy脚本

总结


一、groovy是什么?

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。也是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程

二、使用步骤

1.引入库
        
            org.codehaus.groovy
            groovy-all
            2.5.6
            pom
        

2.JAVA调用groovy

java有三种方式调用groovy脚本。但是真正在实际的服务器环境中,嵌入groovy脚本往往需要满足下面的条件:

    可以直接调用groovy脚本中的方法

    能传递对象到groovy方法中,不仅仅是字符串

    提供脚本缓存机制,不用每次调用脚本的时候,都到磁盘读取

    修改groovy后能实时生效

第一种:通过GroovyShell来执行groovy脚本
第二种:通过GroovyClassLoader动态加载Groovy Class
第三种:使用GroovyscriptEngine脚本引擎加载Groovy脚本

通过GroovyShell来执行groovy脚本
private static GroovyShell groovyShell = new GroovyShell();

private static  T invoke(String scriptText, String function, Object... objects) throws Exception {
    script script= groovyShell.parse(scriptText);
    return (T) InvokerHelper.invokeMethod(script, function, objects);
}

通过GroovyClassLoader动态加载Groovy Class
private static void invoke(String scriptText, String function, Object... objects) throws Exception {
        GroovyClassLoader classLoader = new GroovyClassLoader();
        Class groovyClass = classLoader.parseClass(scriptText);
        try {
            GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
            groovyObject.invokeMethod(function,objects);
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

使用GroovyscriptEngine脚本引擎加载Groovy脚本
private static final GroovyscriptEngineFactory scriptEngineFactory = new GroovyscriptEngineFactory();
 
private static  T invoke(String script, String function, Object... objects) throws Exception {
    scriptEngine scriptEngine = scriptEngineFactory.getscriptEngine();
    scriptEngine.eval(script);
    return (T) ((Invocable) scriptEngine).invokeFunction(function, objects);
}

总结

我们可以利用Groovy的灵活性做数据转换,我们日常写的各种简单的查询,可以固话为一个接口,其中的数据结构转换逻辑我么可以利用groovyShell执行groovy脚本做转换,将脚本保存数据库实现灵活修改,提高开发效率。时下大屏展示数据趋势很猛,需要的接口基本是汇总表的数据直接展示,我们就可以用一个接口植入不同groovy脚本做数据结构转换适应大屏的各种组件展示。小编已经实现目测提高了很大的开发效率

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723949.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号