反射性框架和代码生成性框架
反射性框架
目前的各种流行性框架都是采用反射性编程,如spring全家、fastjson,利用反射性质进行对象的生成、参数的传递和方法调用。反射缺点在于性能,另外像springbean的对象注入也很难控制生命周期,不能自然的(jvm)让对象结束周期。
运行时生成性框架
生成class文件和生成java文件本质上来说区别并不大,关键在于什么时候,利用运行时生成class字节并通过classloader载入的框架,如fastjson就是一个经典的例子,常用asm或javaassit生成class字节,运行时框架但常常需要利用一次反射去获取bean的信息,虽然后面提高了性能。
代码生成性框架
代码生成性框架,现在并没有出现主流的,或者还根本没认识到它的巨大潜力,现在一般代码生成都是用来生成基本项目或者基本代码,比如mybatis generator。代码类生成能够很好的解决性能问题,让创建回收对象回归jvm,并且还很适合graalvm native-image,相信它会是一种很好的选择。