![](https://img-blog.csdnimg.cn/20201123211504162.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Groovy
文章平均质量分 92
Groovy in action ( groovy实战)
往前的
这个作者很懒,什么都没留下…
展开
-
第二十章、groovy的生态
文章目录1、Groovy的Grapes自我包含脚本2、windows自动脚本3、快速启动的GroovyServ4、Gradle的项目的自动构建5、CodeNarc 静态代码分析6、GContracts 提高设计7、Grails进行web开发8、Griffon 进行桌面开发9、Gaelyk进行云开发10、总结1、Groovy的Grapes自我包含脚本@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2')import原创 2020-12-22 21:20:30 · 194 阅读 · 0 评论 -
第十九章、Groovy的DSL(Domain-Specific Language)
特定领域语言:描述某个事物,大家都理解,比如汉语,或者说sql语言,都是一种描述特定领域语言,约定一些关键字,语法之类,使得程序员或机器能够识别和解析语言的含义1、Groovy自然灵活特性groovy 语言是从java5衍生出来,所有完全支持java5所有语法groovy可以省略一些括号和分号,声明类型之类的1.1、忽略括号(命令式表达式)/** * @author liangchen* @date 2020/12/19 */enum Direction{ left, .原创 2020-12-19 23:13:26 · 868 阅读 · 2 评论 -
第十八章、groovy并发编程
1、并发1.1、并发不是并行并发本质也是一个一个处理,只是快速切换并行,同时多核CPU同时运行,互不干扰1.2、groovy并发线程控制需要处理事情启动和停止并发任务协调并发任务控制获取共享变量需要引入外部包(GPars)@Grab('org.codehaus.gpars:gpars:1.2.1')2、并发集合处理@Grab('org.codehaus.gpars:gpars:1.2.1')import static groovyx.gpars.GParsPool.原创 2020-12-18 23:37:48 · 1378 阅读 · 1 评论 -
第十七章、groovy单元测试
文章目录1、开始入门1.1、写测试很简单1.2、GroovyTestCase类介绍1.3、GroovyTestCase使用2、Groovy单元测试代码3、java单元测试代码4、组织你单元测试4.1、测试套件4.2、参数化,或数据驱动测试5、单元测试进阶5.1、使用模拟class5.2、Stubbing和mocking5.3、使用GroovyLogTestCase5.4、单元测试性能5.5、groovy 代码覆盖6、IDE 整合6.1、使用 GroovyTestSuite6.2、使用AllTestSuite原创 2020-12-17 00:23:54 · 2336 阅读 · 1 评论 -
第十六章、整合groovy
文章目录1、整合热身1.1、适当的整合1.2、设置依赖2、使用GroovyShell解析表达式和脚本2.1、开始简单2.2、通过绑定传参2.3、在运行时生成动态类2.4、解析脚本2.5、运行脚本和类2.6、GroovyShell更深的参数3、使用groovy脚本引擎3.1、设置引擎3.2、运行脚本3.3、定义不同资源连接器4、使用GroovyClassLoader4.1、解析和加载groovy 类4.2、鸡和蛋依赖问题4.3、提供自定义资源加载器4.4、在安全盒子运行安全5、spring 整合5.1、写gr原创 2020-12-15 00:21:36 · 474 阅读 · 0 评论 -
No suitable ClassLoader found for grab
用groovy引用依赖时候发生了No suitable ClassLoader found for grab 异常, 主要原因是grape类加载机制有问题,具体没有细研究,目前想到的办法是不使用grape相关加载机制解决问题在启动参数中添加,启动即可 -Dgroovy.grape.enable=false参考urlgroovy-eclipse...原创 2020-12-14 09:02:42 · 595 阅读 · 0 评论 -
第十五章、groovy与web服务交互
1、预览web servicesREST(REpresentational State Transfer (REST))RSS (Really Simple Syndication)ATOM (RFC-4287)XML Remote Procedure Call(XML-RPC) 它添加了上下文,所有它是有状态的SOAP继续扩展XML-RPC,增加一些新特性,比如安全、事务、可靠消息2、读取RSS 和ATOMpackage com.jack.groovy.ch15import gr原创 2020-12-12 20:40:15 · 600 阅读 · 0 评论 -
第十四章、Groovy中XML与JSON使用
文章目录1、读取XML文档1.1、使用DOM解析1.2、使用groovy解析1.3、使用SAX解析1.4、使用StAX解析文档(Streaming API For XML)2、处理XML2.1、一处处理2.2、流处理2.3、更新XML2.4、使用XPath合并3、解析和建立JSON3.1、解析JSON3.2、构建JSON4、总结1、读取XML文档1.1、使用DOM解析节点类型: ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODEjava解析xml文件//ja原创 2020-12-11 20:21:29 · 1041 阅读 · 1 评论 -
第十三章、Groovy数据库
文章目录1、Groovy SQL: 一个好的JDBC2、Groovy SQL 高级特性3、Groovy DataSets4、总结1、Groovy SQL: 一个好的JDBC连接数据库import com.mysql.cj.jdbc.MysqlDataSourceimport groovy.sql.Sql/** * @author liangchen* @date 2020/11/26 */@Grab(group='mysql', module='mysql-connector-ja原创 2020-12-08 22:29:24 · 424 阅读 · 0 评论 -
第十二章、GDK学习
1、object对象1.1、查看object对象的信息/** * @author liangchen* @date 2020/11/22 */// 使用 dump 和inspect 方法def newline = "\n"assert newline.toString() == "\n"// dump 对象信息assert newline.dump()=="<java.lang.String@a value=\n hash=10>"// 值assert ne...原创 2020-12-07 09:00:44 · 409 阅读 · 0 评论 -
Error grabbing Grapes -- [download failed: org.apache.httpcomponents#httpcore;4.2.1!httpcore.jar]
使用groovy时候需要引用依赖,经常会用到@Grab, 有时候确实拉不下包怎么办呢,我今天就遇到了,这个httpcore 4.2.1 死活拉不下,怎么办呢文章目录1、手动下载2、将jar复制到grape对应位置3、重新刷新一下grab注解4、总结1、手动下载一般会用到jar搜索网站,比如 mvnrepository输入关键字 httpcore,点进去然后选择版本,下载下来2、将jar复制到grape对应位置它其实就是ivy管理jar(类似maven一样工具)找到如下位置3、.原创 2020-12-06 20:57:42 · 796 阅读 · 0 评论 -
第十一章、groovy的建造模式
1、通过一个例子来学习建造器创建一个xml文件/** * * @author liangchen* @date 2020/11/20 */// 11.3def builder = new groovy.xml.MarkupBuilder()builder.numbers { //文本 description 'Square and factors of 10..15' for (i in 10..15) { // 括号中是属性原创 2020-12-06 15:59:12 · 231 阅读 · 0 评论 -
第十章、Groovy静态语言特性
文章目录1、选择静态特性动机1.1、Groovy的角色类型1.2、类型检查是动态语言吗2、使用@TypeChecked2.1、查找类型2.2、解决方法调用2.3、检查赋值2.4、类型推断2.5、groviness类型检查2.6、闭包类型检查2.7、重新审视类型检查的动态特性2.8、类型检查代码和动态代码混合3、流类型3.1、最小上界3.2、 Smart instance of inference3.3、闭包分享变量4、静态编译4.1、@CompileStatic4.2、 方法调度5、静态类型检查扩展5.1、原创 2020-12-05 10:02:12 · 1249 阅读 · 0 评论 -
第9章、编译期元编程和AST转换
文章目录1、一个简短故事1.1、生成字节码而不是源码1.2、开发者发挥生成代码的能力2、使得Groovy更简洁2.1、代码生成转换2.2、Class设计和设计模式注解2.3、日志提高2.4、声明并发2.5、容易克隆和扩展2.6、脚本支持2.7、更多转换3、探索AST4、创建ASTs4.1、亲手创建Ast4.2、AstBuilder.buildFromSpec4.3、AstBuilder.buildFromString4.4、AstBuilder.buildFromCode5、本地转换6、全局转换7、测试AS原创 2020-12-04 08:45:20 · 442 阅读 · 0 评论 -
第八章 Groovy 动态编程
1、什么是动态编程经典编程,类一经编译,后面不能修改了2、元对象协议(MOP)委托动态行为是通过hook 方法3、利用(hook)钩子方法自定义MOP3.1、自定义methodMissing(当方法不存在默认调用的方法/** * 自定义方法不存在的时候调用 * @author liangchen* @date 2020/11/10 */class CustomizingMethodMissing { def methodMissing(String name,原创 2020-12-02 22:16:51 · 417 阅读 · 0 评论 -
第七章、Groovy面向对象
文章目录1、定义类和脚本1.1、定义成员变量和本地变量1.2、定义方法和参数1.3、?. 判断是否连续为空 (短路运算符)1.4、构造器2、组织类和脚本2.1、文件与类关系2.2、在包组织类2.3、考虑更深classpath(类路径)3、面向对象的高级特性3.1、使用继承3.2、使用接口3.3、多方法(重载)3.4、使用trait4、GroovyBeans使用4.1、声明bean4.2、beans运行特征4.3、在任何类中使用bean 的方法4.4、Field、accessors、maps and Exp原创 2020-12-02 08:40:07 · 313 阅读 · 0 评论 -
第六章、groovy的控制结构
文章目录1、groovy 布尔1.1、执行布尔测试1.2、在布尔赋值测试2、条件语句结构2.1、if语句2.2、三元表达式2.3、switch语句2.4、assert断言3、循环3.1、while3.2 for4.1、正常结束语句:return/break/continue4.2、异常:throw/try-catch-finally5、总结1、groovy 布尔1.1、执行布尔测试各种状况boolean测试/** * boolean 测试 * @author liangchen* @da原创 2020-12-01 08:54:11 · 307 阅读 · 0 评论 -
第五章、Groovy闭包
文章目录1、优雅介绍闭包2、闭包场景2.1、使用迭代器(iterators)2.2、 使用一个协议处理资源3、声明闭包3.1、简单申明3.2、为声明赋值3.3、闭包对应多个方法3.4、 比较可选值4、使用闭包4.1、调用闭包4.2、更多闭包能力5、理解闭包域5.1、简单变量域5.2、观察闭包域5.3、经典累加测试6、闭门返回值7、支持设计模式7.1、观察者模式8、总结1、优雅介绍闭包一段代码块作为一个对象看待it作为提供闭包的默认名称2、闭包场景2.1、使用迭代器(iterators)//原创 2020-11-27 19:31:10 · 438 阅读 · 0 评论 -
第四章 Groovy集合数据类型
文章目录1、range(范围)1.1、具体的范围1.2、Range也是对象1.3、Rangs实2、 list集合2.1、 具体List集合2.2、 使用 list 操作符2.3、使用list方法2.4、list 实操3、 map集合3.1、指定Map3.2、使用map操作4、Groovy集合注意事项5、总结1、range(范围)1.1、具体的范围left … right (下界,上界)示例/** * 数字范围和日期范围 * @author liangchen* @date 2原创 2020-11-26 20:07:26 · 1202 阅读 · 0 评论 -
第三章、Groovy简单的数据类型
1、无处不在对象1.1、java的类型系统:原生类型和引用类型java原生类型没有包装类对应的方法groovy基本数据类型是有包装类的方法1.2、Groovy则是万物皆对象1.3、自动拆箱和装箱1.4、没有中间状态的拆箱2、可选类型概念2.1、赋值类型def2.2、动态groovy 是类型安全2.3、转换工作[] 就是调用构造方法import java.awt.Pointimport java.awt.Rectangle/** * @author liang原创 2020-11-25 21:53:13 · 491 阅读 · 0 评论 -
第二章、Groovy基础功能窥探
文章目录1、生成代码1.1、Groovy 代码注释1.2、编译Groovy代码和java语法1.3、简洁之美2、assertion 断言探针3、Groovy一瞥3.1、声明类3.2、使用脚本 (测试类)3.3、Groovy bean3.4、注解(annotations)3.5、使用@Grab3.6、处理文本3.7、Numbers是数字对象3.8、使用Lists, Maps, ranges3.9、闭包(代码即对象)3.10、Groovy 控制语句4、Groovy在java环境中的位置4.1、我的类是你的类4.原创 2020-11-24 20:38:49 · 435 阅读 · 0 评论 -
第一章、开始groovy征程
文章目录开始groovy征程1.1、Groovy的故事1.1.1、什么是Groovy1.1.2、与java无缝整合1.1.3、增强你的代码:丰富特性的语言1.1.4、groovy是社区驱动而非公司1.2、Groovy可以为您做啥1. 动态编程1.3、运行Groovy1.3.1、使用groovy运行hello world1.3.2、使用groovy控制台1.3.3、使用groovy 命令行1.4、编译和运行Groovy1.4.1、使用groovyc编译Groovy1.4.2、使用java编译groovy 脚原创 2020-11-23 21:13:19 · 296 阅读 · 0 评论