因为之前在项目中使用了Groovy对业务能力进行一些扩展,效果比较好,所以简单记录分享一下,这里你可以了解:
什么是 Groovy ?
Groovy
是用于Java虚拟机
的一种敏捷的动态语言,能够与 Java 代码很好地结合,也能用于扩展现有代码, 相对于Java, 它在编写代码的灵活性上有非常明显的提升,Groovy 可以使用其他 Java 语言编写的库。
- 为什么选用Groovy作为脚本引擎
- 了解Groovy的基本原理和Java如何集成Groovy
- 在项目中使用脚本引擎时做的安全和性能优化
- 实际使用的一些建议
一、为什么使用Groovy
1.1、技术优势
互联网时代随着业务的飞速发展,不仅产品迭代、更新的速度越来越快,个性化需求也是越来越多,如:多维度(条件)的查询、业务流转规则等。办法通常有如下几个方面:
- 最常见的方式是用代码枚举所有情况,即所有查询维度、所有可能的规则组合,根据运行时参数遍历查找;
- 使用开源方案,例如drools规则引擎,此类引擎适用于业务基于规则流转,且比较复杂的系统;
- 使用动态脚本引擎,例如Groovy,JSR223。注:JSR即 Java规范请求,是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JST,以向Java平台增添新的API和服务。JSR是Java界的一个重要标准。JSR223提供了一种从Java内部执行脚本编写语言的方便、标准的方式,并提供从脚本内部访问Java资源和类的功能,即为各脚本引擎提供了统一的接口、统一的访问模式。JSR223不仅内置支持Groovy、Javascript、Aviator,而且提供SPI扩展,笔者曾通过SPI扩展实现过Java脚本引擎,将Java代码“脚本化”运行。
1.2、技术选型
对于脚本语言来说,最常见的就是Groovy,JSR233也内置了Groovy。对于不同的脚本语言,选型时需要考虑性能、稳定性、灵活性,综合考虑后选择Groovy,有如下几点原因:
- 学习曲线平缓,有丰富的语法糖,对于Java开发者非常友好;
- 技术成熟,功能强大,易于使用维护,性能稳定,被业界看好;
- 和Java兼容性强,可以无缝衔接Java代码,可以调用Java所有的库
二、Groovy集成
2.1、Groovy基本原理
Groovy的语法很简洁