在grails框架中导入groovy脚本方法(三)
在PluginService中定义一个方法
def getScript(scriptName, params){
//定义一个方法getScript(),scriptName是脚本文件名,params是这个脚本用到的参数
String scriptPath = "../yourPath/script/" //存放文件的路径
GroovyScriptEngine gse = new GroovyScriptEngine(scriptPath)
def ss = gse.loadScriptByName(scriptName) //通过文件名得到这个script
Binding binding = new Binding();
binding.setVariable("service2", new PluginService())
binding.setVariable("params", params); //上文说过这个是绑定上下文环境
def controllerScript = gse.createScript(scriptName, binding)
controllers.put(scriptName, controllerScript) //这是定义缓存
return gse.run("${scriptName}", binding) //运行脚本
}
这个例子是我用到的,在这个例子中gse得到的是整个controller中的目录,也就是script文件中所有的script都在这个里面。你也可以取得一个script,这样子
Gse.loadScriptByName(String name)
这就取到了一个script,后面的两个binding都是给这个script添加变量和上下文环境,也可以理解是初始化,
在下面两句就是添加缓存
最后一句是,运行这个script,后面的binding就是这个环境和变量
例如:我有一个脚本test.groovy
如:从上文中传过来的params是:params.a="world"
//test.groovy
String b="Hello"
String c=params.a+b
println params.a
println b
println c
输出:
world
Hello
Hello world!
这个就是我刚开始用的方法,但是,我勒个去啊!领导又说:在script中能够写闭包、方法、还要能够import 我们现在工程中的domain、controller、service,我去啊!这就是实现所有跟domain、controller、service相同一个数据层啊!唉!这个方法也不行啊!不过,下一个章就会有新方法!
高手不要喷啊!我是新手!
分享到:
相关推荐
在实际项目中,Groovy还常与其他工具结合,如Grails(一个基于Groovy的Web框架),或者Gradle(构建自动化工具)。这些工具也支持Groovy脚本,使数据库操作更加灵活和高效。总的来说,掌握Groovy进行数据库操作是...
无论是作为嵌入式脚本快速实现功能,还是作为类库扩展Java项目,或者是在Grails或Spring Boot框架中使用,Groovy都能为Java开发者带来诸多便利。掌握Groovy的这些使用方式,能帮助开发者更好地适应现代Java开发环境...
在Grails框架中,通讯录系统的构建主要涉及以下几个核心知识点: 1. **Domain Classes**:在Grails中,领域模型是业务逻辑的核心,代表了应用程序中的实体。在通讯录系统中,我们可以定义一个`Contact`领域类,包含...
- 在`grails-app/conf/UrlMappings.groovy`文件中定义URL到控制器动作的映射,方便访问和操作。 8. **运行应用** - 运行`grails run-app`命令启动Grails应用。应用将监听默认的8080端口,你可以通过浏览器访问`...
10. **GroovyShell和GroovyClassLoader**:这两个类允许在运行时动态加载和执行Groovy脚本,是实现动态脚本和自定义行为的关键。 在“dynamicscript”这个文件名中,我们可以推测这可能是关于动态脚本的Groovy实现...
- **Grails框架**:Groovy的一个主要应用是构建Web应用程序,通过Grails框架,开发者可以快速开发出基于Spring Boot的应用。 - **Gradle构建工具**:Gradle,一个流行的构建自动化工具,使用Groovy作为其DSL(领域...
由于Groovy代码可以无缝调用Java类库,开发者可以在已有的Java项目中轻松引入Groovy脚本,提高生产力。此外,Groovy代码可以被编译为与Java字节码兼容的类,这意味着Groovy程序可以在任何支持Java的环境中运行。 在...
总的来说,Groovy Grails Eclipse插件是开发Groovy和Grails应用必不可少的工具,它通过集成开发环境的强大功能,使得开发者能够更加高效、便捷地进行开发工作,同时享受到Groovy语言的灵活性和Grails框架的生产力...
安装Groovy插件后,Eclipse Neon将成为一个强大的Groovy开发环境,适用于开发基于Groovy的应用程序,包括Grails web应用、Spring Boot应用或者作为持续集成服务器Jenkins的脚本语言。通过这个插件,Java开发者可以...
- GroovyShell允许在命令行环境中即时执行Groovy代码,而GroovyConsole提供了一个交互式的IDE,便于学习和调试Groovy。 通过阅读《Groovy in Action》这本书,你可以深入了解这些概念,并学习如何在实际项目中应用...
**IDE集成**:为了提高开发效率,可以将Grails项目导入到喜欢的IDE中,如IntelliJ IDEA或Eclipse,利用其丰富的功能进行代码编写和调试。 **约定优于配置**:Grails遵循“约定优于配置”的原则,这意味着开发者在...
### Grails框架参考文档知识点概览 #### 一、引言 Grails是一个基于Groovy语言的开源Web应用开发框架,它充分利用了敏捷开发的...以上内容涵盖了Grails框架的基本使用方法和高级特性,为开发者提供了全面的技术支持。
7. **GroovyShell** 和 **GroovyScriptEngine**:这两个工具有助于在运行时执行Groovy脚本,常用于快速原型开发或脚本测试。 8. **AST转换**:Groovy的抽象语法树(AST)转换允许开发者在编译阶段自定义语法,从而...
在标题和描述中提到的"awesome-groovy"是一个精选列表,收集了各种高质量的Groovy库、框架和资源,旨在帮助开发者更高效地利用Groovy进行开发工作。 这个列表通常包括以下几类内容: 1. **库**:这些是预编译的...
在IT行业中,GORM是一个非常重要的工具,尤其在Grails框架中,它是处理数据库操作的主要接口。本篇文章将深入探讨GORM的独立启动(Standalone)功能,这使得开发者可以在不依赖整个Grails应用的情况下使用GORM的强大...
标题“GrailsProjectAuxA.zip”表明这可能是一个与Grails框架相关的项目辅助资源压缩包。Grails是一种基于Groovy语言的开源Web应用框架,它简化了Java平台上的开发流程,提供了MVC(模型-视图-控制器)架构模式以及...
在“groovy代码-这是我的一个测试代码”这个标题中,我们可以推测这是一个关于Groovy编程的实践项目,作者可能在尝试编写和测试Groovy脚本。 在描述中,“groovy代码-这是我的一个测试代码”同样强调了这是用Groovy...
10. **Grails**:如果DogRobot项目是一个Web应用,可能使用了Grails框架,它是基于Groovy构建的全栈框架,简化了Java Web开发。 通过对"DogRobot_copy"的分析,我们可以学习Groovy编程语言的核心概念,了解如何在...
**Minutrade-Test** 是一个基于Grails框架的项目,用于进行测试目的。Grails是一种基于Groovy语言的开源Web应用框架,它利用了敏捷开发的理念,旨在提高开发效率和简化开发流程。本项目可能包含了JavaScript技术,这...