一种通过javascript直接调用javaapi的方法

文档序号:6513835阅读:502来源:国知局
一种通过javascript直接调用java api的方法
【专利摘要】本发明公开了一种通过javascript直接调用java?api的方法,其特征在于包括步骤:S1、将java?api相关的类增加适当的注释;S2、设置转换器引擎,用于解析java?api相关类的注释,监听通过javascript方式调用java?api的事件,处理来自javascript方式的调用并生成javascript可识别的json对象。本发明在仍然仅提供一套java的api的情况下,通过对java的api做一些简单的注释,便可以让二次开发人员能够直接调用到java的api。通过本发明,产品中仅需要维护java的api,二次开发人员可以通过java方式和javascript方式都能调用到同样的java的api,从而提高了软件产品二次开发的效率。
【专利说明】—种通过javascr ipt直接调用java api的方法
【技术领域】
[0001]本发明涉及软件开发领域,特别涉及一种通过javascript直接调用java api的方法。
【背景技术】
[0002]在软件产品二次开发的过程中,很多时候产品提供的java版本的api并不能满足二次开发的需要,二次开发人员在修改jsp页面时希望能够调用一个javascript方法达到调用java的api的功能。虽然通过ajax实现调用是一种行之有效的解决方案,但是通过这种方式二次开发人员必须增加必要的java代码,而且需要重新编译成class文件,这些操作无疑会增加二次开发的工作量和开发难度。
[0003]因此,现有技术中需要一种能够通过javascript直接调用java api的方法。

【发明内容】

[0004]鉴于现有技术中存在的问题,本发明目的在于提供一种通过javascript直接调用java api的方法。在仍然仅提供一套java的api的情况下,通过对java的api做一些简单的注释,便可以让二次开发人员能够直接调用到java的api。通过本发明,产品中仅需要维护java的api, 二次开发人员可以通过java方式和javascript方式都能调用到同样的java的api,从而提高了软件产品二次开发的效率。
[0005]本发明提供的一种通过javascript直接调用java api的方法,其特征在于包括步骤:
[0006]S1、将java api相关的类增加适当的注释;
[0007]S2、设置转换器引擎,用于解析java api相关类的注释,监听通过javascript方式调用java api的事件,处理来自javascript方式的调用并生成javascript可识别的j son对象ο
[0008]优选的,所述注释分为3个级别,即类注释、方法注释、参数注释。
[0009]优选的,所述注释可以添加到实现类上、也可以添加到实现类的接口上、还可以添加到实现类的父类中。
[0010]优选的,所述处理来自javascript方式的调用,即匹配到javascript方式调用的java api的方法,利用java的类反射机制执行该方法。
【专利附图】

【附图说明】
[0011]图1例示了本发明实施例一种通过javascript直接调用java api的方法流程图。【具体实施方式】
[0012]为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。[0013]图1例示了本发明实施例一种通过javascript直接调用java api的方法流程图,如图1所示,所述方法包括步骤:
[0014]S1、将java api相关的类增加适当的注释;
[0015]优选的,所述注释可分为3个级别,即类注释、方法注释、参数注释,这些注释的添加不会影响java api的相关类的功能。
[0016]优选的,对于增加的注释,为了提高灵活性,注释可以添加到实现类上、也可以添加到实现类的接口上、还可以添加到实现类的父类中。
[0017]S2、设置转换器引擎,用于解析java api相关类的注释,监听通过javascript方式调用java api的事件,处理来自javascript方式的调用并生成javascript可识别的j son对象ο
[0018]优选的,所述处理来自javascript方式的调用,即匹配到javascript方式调用的java api的方法,利用java的类反射机制执行该方法。
[0019]由于本发明引入了 JDK5中注释的概念,我们自定义了类注释、方法注释、和参数注释等,使得对java api的改造相当容易,同时我们设计的转换器引擎返回给javascript调用的结果是标准的json格式数据,这对于二次开发人员是非常容易理解的数据结构。
[0020]由于采用了以上方案,二次开发人员无需编写任何java代码就可以做到很方便的通过javascript方式调用到java的api,并且日后产品中java api的功能缺陷修复对二次开发的模块影响减少。
[0021]下面通过一个具体实例来更清楚地了解本发明方法的流程。
[0022]I)假设有一个java api,类名为UserManager即人员管理接口,其中有个方法为getUserByLoginld即根据登录id获取用户信息,该方法的参数是1ginId即用户登录id,该方法的返回值是User对象实体;
[0023]2)下面无需修改该api的实现逻辑,依次添加注释,即在类上增加注释@RestMapping (path=〃/userMgt〃),在方法上增加注释 ORestMapping (path=〃/user/id/{id} 〃,method=RequestMethod.GET),在参数上增加注释 OPathVariable ;
[0024]3)以上便完成了 java api的注释添加工作,下面当通过javascript方式发送一个http的get请求时,这里请求中如带有如下url,即/userMgt/user/id/zhangsan,这时转换器引擎捕获到这个请求后便匹配到了 UserManager类的getUserByLoginld方法,其中参数为zhangsan ;随后便利用java的类反射机制执行了该方法,同时获取到了 User实体对象;
[0025]4)下面对User实体对象进行转换成json对象的工作,这里我们在转换器引擎中设计了一个转换工具,转换的原则是对实体对象中以"get",〃is","has"为前缀的方法进行转换,同时考虑到有实体对象嵌套实体对象的问题,我们设置了实体对象转换的嵌套层次参数,可以灵活设置,这样避免了因为循环嵌套可能引起的内存泄露问题;
[0026]5) Json对象转换完成后,javascript方法就可以很方便的对获取到的json对象进行操作了。
[0027]以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,例如使用可实现同种功能目的的算法、使用不同的编程语言(如C、C++、Java等)实现等。这些都在本发明的权利要求所限定的保护范围内。
【权利要求】
1.一种通过javascript直接调用java api的方法,其特征在于包括步骤: 51、将javaapi相关的类增加适当的注释; 52、设置转换器引擎,用于解析javaapi相关类的注释,监听通过javascript方式调用java api的事件,处理来自javascript方式的调用并生成javascript可识别的json对象。
2.如权利要求1所述的方法,其特征在于: 所述注释分为3个级别,即类注释、方法注释、参数注释。
3.如权利要求1所述的方法,其特征在于: 所述注释可以添加到实现类上、也可以添加到实现类的接口上、还可以添加到实现类的父类中。
4.如权利要求1所述的方法,其特征在于: 所述处理来自javascript方式的调用,即匹配到javascript方式调用的java api的方法,利用java的类反射机制执行该方法。
【文档编号】G06F9/45GK103514026SQ201310453107
【公开日】2014年1月15日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】曹明远, 卢学军 申请人:摩卡软件(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1