[发明专利]一种Java程序编译时自动生成字节码的优化方法有效
申请号: | 202011169124.4 | 申请日: | 2020-10-28 |
公开(公告)号: | CN112346778B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 刘滨;潘正颐;韩锦 | 申请(专利权)人: | 常州微亿智造科技有限公司 |
主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F8/41;G06F8/33;G06F9/455 |
代理公司: | 常州至善至诚专利代理事务所(普通合伙) 32409 | 代理人: | 赵旭 |
地址: | 213100 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 程序 编译 自动 生成 字节 优化 方法 | ||
本发明公开了一种Java程序编译时自动生成字节码的优化方法,包括自定义注解、AOP、Javac以及JVM,Java源码通过Javac编译成JVM的字节码文件;自定义注解用来表示哪个Java源文件需要新增什么样的字节码;AOP用于对自定义注解进行拦截;Javac用于分析源代码并生成一棵抽象的字节码语法树;JVM用于给字节码文件增加新的节点;自定义注解和AOP打包后引入到需要的项目工程中,并在需要生成公用字节码的类中加入自定义注解的注解。本发明的一种Java程序编译时自动生成字节码的优化方法利用JVM加载字节码的特性,在Java编译期自动生成公用的字节码,以避免大量的重复编码工作。
技术领域
本发明涉及计算机的技术领域,尤其是一种Java程序编译时自动生成字节码的优化方法。
背景技术
工业物联网将具有感知、监控能力的各类采集、控制传感器或控制器以及移动通信、智能分析等技术不断融入到工业生产过程各个环节,从而大幅提高制造效率,改善产品质量,降低产品成本和资源消耗,最终实现将传统工业提升到智能化的新阶段。从应用形式上,工业物联网的应用具有实时性、自动化、嵌入式(软件)、安全性和信息互通互联性等特点。
然而,在工业物联网场景中,Java的源文件在一个服务中往往会很多,而这些源文件中又会有很多重复的内容,进而产生大量的重复编码工作。
发明内容
本发明要解决的技术问题是:为了克服现有技术中存在的不足,提供一种Java程序编译时自动生成字节码的优化方法,利用JVM加载字节码的特性,在Java编译期自动生成公用的字节码,以避免大量的重复编码工作。
本发明解决其技术问题所采用的技术方案是:一种Java程序编译时自动生成字节码的优化方法,包括自定义注解、AOP、Javac以及JVM,Java源码通过所述的Javac编译成JVM的字节码文件;
所述的自定义注解用来表示哪个Java源文件需要新增什么样的字节码;
所述的AOP用于对自定义注解进行拦截;
所述的Javac用于分析源代码并生成一棵抽象的字节码语法树;
所述的JVM用于给字节码文件增加新的节点;
自定义注解和AOP打包后引入到需要的项目工程中,并在需要生成公用字节码的类中加入自定义注解的注解。
进一步具体地说,上述技术方案中,所述的AOP包括声明切面、连接点以及通知。
进一步具体地说,上述技术方案中,所述的通知中对自定义注解进行拦截,解析到自定义注解的注解时要实现自动生成类构造方法的字节码。
进一步具体地说,上述技术方案中,所述的AOP找到自定义注解的注解类,利用Java的反射机制获取类中的所有的属性,然后为这个类编写带有所有属性的构造方法。
进一步具体地说,上述技术方案中,所述的JVM找到注解所在类后把类的构造方法插入到字节码语法树的结构中,Javac使用修改后的字节码语法树生成字节码文件。
进一步具体地说,上述技术方案中,所述的自定义注解和AOP打包成jar的方式,在需要的项目工程中引入jar包,在需要生成构造方法的类中加入自定义注解的注解。
进一步具体地说,上述技术方案中,所述的自定义注解为@Constructor。
进一步具体地说,上述技术方案中,所述的自定义注解的注解接口类声明为@Retentionpublic@interfaceConstructor{}。
进一步具体地说,上述技术方案中,所述的@Retention的类型需要声明为编译时解析RetentionPolicy.SOURCE。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于常州微亿智造科技有限公司,未经常州微亿智造科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011169124.4/2.html,转载请声明来源钻瓜专利网。