跳至主要內容
动态编译技术
com.sun.tools.javac.jvm.ClassWriter#writeClass 把字节码写出到OutputStream中

编译过程

java文件-> JCCompilationUnit(类) -> 注解处理器 -> 写出class文件

JCCompilationUnit生成

语法树生成


DHB大约 2 分钟Java动态加载编译
动态执行代码逻辑

动态执行逻辑的方法据我所知有一下两种方式

  • QLExpress
  • Groovy

QLExpress

QLExpress是阿里开源的动态脚本执行的项目。 由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。 在阿里集团有很强的影响力,同时为了自身不断优化、发扬开源贡献精神,于2012年开源。

https://github.com/alibaba/QLExpress

这种方案在配置上感觉不太方便,原因是没有IDE支持、某些JAVA语法不支持。。。


DHB大约 6 分钟JavaGroovy动态加载