一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于JAVAWEB项目的开发方法、装置及介质与流程

2022-12-10 09:20:06 来源:中国专利 TAG:

一种基于java web项目的开发方法、装置及介质
技术领域
1.本发明涉及应用开发技术领域,特别是涉及一种基于java web项目的开发方法、装置及介质。


背景技术:

2.随着java技术的蓬勃发展,java开发效率也不断进步,例如初期的java web需要开发sevlet接口,接口开发以及维护过程中较为复杂。现有的springmvc技术摒弃复杂的sevlet接口,使用简单且更容易维护的controller接口进行开发,还有spring的控制反转(inversion of control,ioc)、面向切面编程(aspect oriented programming,aop)都是增加项目迭代开发、维护的效率。
3.在使用java语言进行软件开发过程中,由于java语言的特性,不可避免的经过java源文件编写-编译-加载-运行,现有的开发需要开发者一遍一遍进行编写代码、编译、启动、开发,每次加载修改一次,都需要手动启动一次,由于系统较为庞大,使得启动时间占用较长的时间,导致开发者的时间成本以及研发成本增加。
4.因此,如何提高java应用的开发效率是本领域技术人员亟需要解决的。


技术实现要素:

5.本发明的目的是提供一种基于java web项目的开发方法、装置及介质,提高开发效率,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
6.为解决上述技术问题,本发明提供一种基于java web项目的开发方法,包括:
7.开启热部署工具对java文件进行监控;
8.当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;
9.根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;
10.根据class文件确定java文件的底层模块的通信测试。
11.优选地,开启热部署工具对java文件进行监控,包括:
12.获取预设周期;
13.根据预设周期调用热部署工具的任务调度框架对java文件遍历扫描;
14.对应地,对java文件遍历扫描,包括:
15.通过字节流读取java文件;
16.使用md5对读取到的java文件进行加密以得到当前预设周期对应java文件的散列值。
17.优选地,确定java文件发生变更的过程具体包括:
18.获取上一个预设周期对应的java文件的散列值;
19.判断当前预设周期与上一个预设周期分别对应的散列值是否发生变化;
20.若发生变化,则确定当前预设周期的java文件发生变更。
21.优选地,获取变更的java文件动态编译为class文件,包括:
22.通过字节流读取java文件所需要的jar包;
23.使用字符串拼接方式拼接得到java文件的手动编译指令;
24.根据手动编译指令对java文件进行动态编译以得到class文件。
25.优选地,根据class文件确定java文件的底层模块的通信测试,包括:
26.解析class文件,并查看解析后的class文件是否存在标注信息;
27.若存在,则确定java文件需要与底层模块进行通讯测试;
28.根据标注信息对应的class文件进行通讯测试以确定class文件的正常使用。
29.优选地,标注信息的确定通过固定接口或特定注解标注class文件。
30.优选地,在得到当前预设周期对应java文件的散列值之后,还包括:
31.将散列值与对应的java文件的文件名存入至map桶中。
32.为解决上述技术问题,本发明还提供一种基于java web项目的开发装置,包括:
33.开启模块,用于开启热部署工具对java文件进行监控;
34.编译模块,用于当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;
35.加载模块,用于根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;
36.确定模块,用于根据class文件确定java文件的底层模块的通信测试。
37.为解决上述技术问题,本发明还提供一种基于java web项目的开发装置,包括:
38.存储器,用于存储计算机程序;
39.处理器,用于执行计算机程序时实现如上述基于java web项目的开发方法的步骤。
40.为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述基于java web项目的开发方法的步骤。
41.本发明提供的一种基于java web项目的开发方法,包括:开启热部署工具对java文件进行监控;当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;根据class文件确定java文件的底层模块的通信测试。该方法基于热部署工具,实现在开发过程中自动识别源代码修改、编译加载,节省统一部署的时间和手动执行的时间,提高开发效率。同时,结合虚拟化平台本身的特点,通过虚拟化平台与底层模块的正常通信检测,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
42.另外,本发明还提供了一种基于java web项目的开发装置及介质,具有如上述基于java web项目的开发方法相同的有益效果。
附图说明
43.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的
介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例提供的一种基于java web项目的开发方法的流程图;
45.图2为本发明实施例提供的启动监控程序的流程图;
46.图3为本发明实施例提供的监控java文件的修改过程示意图;
47.图4为本发明实施例提供的一种基于java web项目的开发装置的结构图;
48.图5为本发明实施例提供的另一种基于java web项目的开发装置的结构图。
具体实施方式
49.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
50.本发明的核心是提供一种基于java web项目的开发方法、装置及介质,提高开发效率,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
51.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
52.需要说明的是,本发明基于java web项目的开发方法,采用热部署工具,全局编译的过程,热部署工具使得开发者使用异步非阻塞的方式进行处理变化的java文件,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发输入输出(input output,io)操作并等待或者轮询的去查看io操作是否就绪,而异步是指用户进程触发io操作以后便开始做自己的事情,而当io操作已经完成的时候会得到io完成的通知。阻塞和非阻塞是针对于进程在访问数据的时候,根据io操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作方法的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入方法会立即返回一个状态值。
53.同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。阻塞是使用同步机制的结果,非阻塞则是使用异步机制的结果。关于异步非阻塞方式在本发明中指的是web项目与热部署工具之间的方式关系。
54.图1为本发明实施例提供的一种基于java web项目的开发方法的流程图,如图1所示,该方法包括:
55.s11:开启热部署工具对java文件进行监控;
56.s12:当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;
57.s13:根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;
58.s14:根据class文件确定java文件的底层模块的通信测试。
59.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。因此,除了web模块的虚拟化平台系统,还需要一些底层的相关技术做支撑,包括网络模块、存储模块、
计算模块等。云平台系统是控制、处理、操作、监控这些模块,使得底层模块再控制物理设备,比如硬盘、网卡、中央处理器(central processing unit,cpu),从而实现虚拟化。虚拟化平台系统是这些底层模块的上层模块,不但肩负着调用底层模块的任务,还有监控硬件设备是否正常以及设备参数等工作。因此,平台启动之前,需要对平台与底层模块进行通信测试,测试是否跟底层模块通信是否正常,原则上来说,每次启动都需要进行检测,因为每次修改代码均可能修改到与底层通信的模块。
60.目前大部分web项目都是使用spring这种开源框架搭建的。因此大部分校验工作都放入了spring的启动流程中。在spring将java类(与底层接口通信的)放入spring容器前(后),进行检测。但是,当修改该类之后进行热加载,此时,spring的初始化流程并不可能重新走一遍。因此只能在热部署的过程中进行通信检测。
61.开启热部署工具对java文件进行监控,使用定时任务进行对工作空间中的java文件进行监控,具体的定时器定时时间可以根据实际情况设定。例如2分钟或者1分钟一次,每执行一次就意味着进行了一次热部署的过程。对应地定时器的定时任务不做限定,可以使用市面上熟知的定时任务工具。
62.启动监控程序后,监控到java文件发生变更时,需要获取变更后的java文件进而动态编译为class文件,在java中,java虚拟机(java virtual machine,jvm)可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题并且保留了解释型语言可移植的特点,而通过即时编译器(jit)又有编译型语言执行效率高的特点。所以java程序运行时比较高效。java通过字节码文件和虚拟机jvm之间的关系,做到了平台无关性,一次编译,各平台都可运行。
63.补充clojure(lisp语言的一种方言)、groovy、scala等语言都是运行在java虚拟机之上。下图展示了不同的语言被不同的编译器编译成.class文件最终运行在java虚拟机之上。.class文件的二进制格式可以使用winhex查看。
64.根据web项目设定的端口号获取对应的进程身份证标识号(identity document,id),运行java web项目的时候,都会给项目指定一个端口号,比如8080等等,可以通过这个端口号来获取该项目运行时的进程id,即进程id(process id)。在获取这个进程id之后,未来就可以通过pid获取对应的java提供的虚拟机工具获取虚拟机实例。
65.复加载是在重新编译后,不需要停机,应用程序就可以加载使用新的class文件,如果应用系统简单,可以开启一个单独的线程,间隔时间内重新加载所有的class文件。如果应用系统较为复杂,需要考虑性能,尽量识别出何种文件需要被热加载,比如根据class文件最新更新时间判断等等。由于复加载过程不会清理内存,所以有内存溢出的风险,成熟的热加载软件或者系统都会有对应的方案来处理。
66.当编译完修改的java文件成class之后并且获取到java web项目的pid之后,就可以java提供的虚拟机执行器来调用动态加载模块。动态加载模块使用字节码级别的动态代理可以在运行期间对java虚拟机进行干预,对java虚拟机内存中的类进行修改或者增加。也即在运行时修改java代码。使用instrument提供的类动态的重新加载更新过之后的类。
67.在重新加载完后的class文件,需要虚拟机读取并分析class文件是否需要热部署之后进行检测,若检测,则对该class文件进行标记,重新进行底层模块的测试,以便于平台
与底层模块之间的正常匹配。
68.本发明实施例提供的一种基于java web项目的开发方法,包括:开启热部署工具对java文件进行监控;当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;根据class文件确定java文件的底层模块的通信测试。该方法基于热部署工具,实现在开发过程中自动识别源代码修改、编译加载,节省统一部署的时间和手动执行的时间,提高开发效率。同时,结合虚拟化平台本身的特点,通过虚拟化平台与底层模块的正常通信检测,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
69.在上述实施例的基础上,步骤s11中的开启热部署工具对java文件进行监控,包括:
70.获取预设周期;
71.根据预设周期调用热部署工具的任务调度框架对java文件遍历扫描;
72.对应地,对java文件遍历扫描,包括:
73.通过字节流读取java文件;
74.使用md5对读取到的java文件进行加密以得到当前预设周期对应java文件的散列值。
75.具体地,设置定时任务的预设周期,根据预设周期调用热部署工具的任务调度框架对java文件遍历扫描以进行监控。任务调度框架可以根据实际情况设定,作为一种优选实施例,采用任务调度框架quartz进行定时任务,linux中的cron可以是任务调度的初形。随着任务的复杂性及分布式需求,cron显的力不从心。quartz是经典的作业调度框架。特点具有强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;分布式和集群能力。
76.图2为本发明实施例提供的启动监控程序的流程图,如图2所示,启动监控模块,动态编译模块,优选定时任务一分钟一次。为了使热部署工具的效果更好,尽可能减少每次部署的时间,需要保证每次的时间在能够扫描,采用corn表达式进行设置,例如:
77.《value》0*/1***?《/value》表示每隔1分钟执行一次。
78.一般来说,在使用idea进行编程的时候,项目工作空间一般是固定的,项目结构也是固定的。对所有java文件进行遍历,使用字节流对文件进行读取,并使用消息摘要算法第五版(message digest algorithm md5,md5)对内容进行加密,最终获取到一个16位的散列值。
79.md5算法为计算机安全领域广泛使用的一种散列函数,用于提供消息的完整性,是计算机广泛使用的哈希算法之一md5的固定长度为128比特,16字节,通常用16进制字面值输出,是一个长度为32位的字符串。
80.md5的特点在于长度固定(无论输入多少字节,输出总是16字节);不可逆(从结果无法反推原始数据);具有高度的离散性(输出的16字节数据,没有任何规律可言,无法预测结果);抗碰撞性(在原始数据固定的情况下,几乎不会出现两个数据的md5相同)。
81.应用场景可以分为以下内容:
82.用户密码保护:在保存用户密码时,不记录密码本身,只记录密码的md5结果(即使数据库被盗也无法反推出明文)
83.文件完整性校验:先在发送端计算一次文件的md5,并把结果发送给接收端,接收端在接受文件后也计算一次md5,两次结果一致文件完整。
84.云盘秒传:云盘上传时计算md5,并在自己的数据库中搜索一下md5是否存在,存在则使用已有的文件就可以了,从而实现云盘秒传。
85.数字签名:发布程序时同时发布其md5,下载后比较md5是否相同,就可知道程序是否被篡改。
86.本实施例提供的开启热部署工具对java文件进行监控,通过加密输出散列值,保证数据的完整性。
87.在上述实施例的基础上,步骤s12中的确定java文件发生变更的过程具体包括:
88.获取上一个预设周期对应的java文件的散列值;
89.判断当前预设周期与上一个预设周期分别对应的散列值是否发生变化;
90.若发生变化,则确定当前预设周期的java文件发生变更。
91.具体地,为了监控到java文件的修改变更,需要获取上一个预设周期对应的java文件的散列值,以当前预设周期和上一个预设周期的java文件进行对比,若两个值不同,则说明当前预设周期对应的java文件发生了变化,即确定当前预设周期的java文件发生变更。
92.图3为本发明实施例提供的监控java文件的修改过程示意图,如图3所示,对java文件遍历,散列值与上一个预设周期的散列值进行对比,若为修改,则重新编译。
93.需要说明的是,在得到当前预设周期对应java文件的散列值之后,还包括:
94.将散列值与对应的java文件的文件名存入至map桶中。
95.具体地,将散列值和文件名存入到一个map的《key,value》中。map是stl的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。map主要用于资料一对一映射(one-to-one)的情况,map内部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,比如一个班级中,每个学生的学号跟他的姓名就存在着一对一映射的关系。
96.map的功能自动建立key-value的对应。key和value可以是任意需要的类型,包括自定义类型。
97.使用map得包含map类所在的头文件:
98.#include《map》//注意,stl头文件没有扩展名.h
99.map对象是模板类,需要关键字和存储对象两个模板参数:
100.std:map《int,,string》personnel;
101.这样就定义了一个用int作为索引,并拥有相关联的指向string的指针。
102.为了使用方便,可以对模板类进行一下类型定义,
103.typedef map《int,cstring》udt_map_int_cstring;
104.udt_map_int_cstring enummap。
105.本实施例提供的确定java文件发生变更的过程以及在得到当前预设周期对应java文件的散列值之后,将散列值与对应的java文件的文件名存入至map桶中,便于后续的加载java文件。
106.在上述实施例的基础上,步骤s12中的获取变更的java文件动态编译为class文件,包括:
107.通过字节流读取java文件所需要的jar包;
108.使用字符串拼接方式拼接得到java文件的手动编译指令;
109.根据手动编译指令对java文件进行动态编译以得到class文件。
110.具体地,jar包是对写好的类进行了打包。我们可以通过将jar包放到lib目录下来使用这些jar包中的类、属性和方法。jar文件是java archive file-java档案文件的简称,是与平台无关的文件格式,基于zip文件格式将许多文件合成一个压缩文件.jar,区别是比zip多了一个包含了一个meta-inf/manifest.mf文件,该文件是在生成jar文件的时候自动创建的。
111.jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和jvm这样的工具直接使用。在jar中包含特殊的文件,如manifests和部署描述符,用来指示工具如何处理特定的jar。
112.涉及因特网应用时,jar文件显得特别有用。在jar文件之前,web浏览器必须重复多次请求web服务器,以便下载完构成一个“程序片”(applet)的所有文件;但在将所有这些文件合并到一个jar文件里以后,只需向远程服务器发出一次请求即可。除此以外,每个文件都是未经压缩的,由于采用了压缩技术,所以可在更短的时间里获得全部数据。
113.当识别出修改文件之后,可以通过流读取相应的信息。读出编译该文件所需要的jar包,并使用字符串拼接的方式拼接出手动编译的命令,以windows环境来进行举例:使用cmd工具使用jdk的javac命令对某个java文件进行编译。
114.一个正常的java编译命令如下:
115.javac-cp d:\\code\\mvn_repo\\org\\springframework\\spring-web\\5.3.15\\spring-web-5.3.15.jar-encoding utf-8
116.d:\\git\\repo\\workhelper\\workhelper\\hotstart5\\src\\main\\java\\com\\demo\\controller\\testcontroller.java
117.在代码中开一个额外的线程使用cmd来动态编译已经更新的java文件。
118.本发明实施例提供的通过字节流读取java文件所需要的jar包;使用字符串拼接方式拼接得到java文件的手动编译指令;根据手动编译指令对java文件进行动态编译以得到class文件。基于热部署工具,实现在开发过程中自动识别源代码修改、编译加载,节省统一部署的时间和手动执行的时间,提高开发效率。
119.在上述实施例的基础上,步骤s14中的根据class文件确定java文件的底层模块通信测试,包括:
120.解析class文件,并查看解析后的class文件是否存在标注信息;
121.若存在,则确定java文件需要与底层模块进行通讯测试;
122.根据标注信息对应的class文件进行通讯测试以确定class文件的正常使用。
123.具体地,class文件结构以另一种方式展示了java文件,使得jvm可以理解并处理
该文件,该文件的结构是固定的,因此,可以通过读取并分析该文件是否是需要热部署之后立刻需要执行检测的java类。若不存在标注信息,则确定java文件不需要与底层模块进行通讯测试。
124.作为一种优选的实施例,其标注信息的确定可以通过实现固定接口或者特定注解来进行标注,来确认是否需要热部署完该类之后,需要重新进行底层通信测试。底层模块至少包括底层网络、底层计算以及底层存储等模块。本发明实施例提供的解析class文件,并查看解析后的class文件是否存在标注信息;若存在,则确定java文件需要与底层模块进行通讯测试;根据标注信息对应的class文件进行通讯测试以确定class文件的正常使用。结合虚拟化平台本身的特点,通过虚拟化平台与底层模块的正常通信检测,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
125.上述详细描述了基于java web项目的开发方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的基于java web项目的开发装置,图4为本发明实施例提供的一种基于java web项目的开发装置的结构图。如图4所示,基于java web项目的开发装置包括:
126.开启模块11,用于开启热部署工具对java文件进行监控;
127.编译模块12,用于当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;
128.加载模块13,用于根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;
129.确定模块14,用于根据class文件确定java文件的底层模块的通信测试。
130.由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
131.本发明实施例提供的一种基于java web项目的开发装置,包括:开启热部署工具对java文件进行监控;当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;根据class文件确定java文件的底层模块的通信测试。该装置基于热部署工具,实现在开发过程中自动识别源代码修改、编译加载,节省统一部署的时间和手动执行的时间,提高开发效率。同时,结合虚拟化平台本身的特点,通过虚拟化平台与底层模块的正常通信检测,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
132.图5为本发明实施例提供的另一种基于java web项目的开发装置的结构图,如图5所示,该装置包括:
133.存储器21,用于存储计算机程序;
134.处理器22,用于执行计算机程序时实现基于java web项目的开发方法的步骤。
135.本实施例提供的基于java web项目的开发装置可以包括但不限于平板电脑、笔记本电脑或者台式电脑等。
136.其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门
阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称central processing unit,cpu;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
137.存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的基于java web项目的开发方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括windows、unix、linux等。数据213可以包括但不限于基于java web项目的开发方法所涉及到的数据等等。
138.在一些实施例中,基于java web项目的开发装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
139.领域技术人员可以理解,图5中示出的结构并不构成对基于java web项目的开发装置的限定,可以包括比图示更多或更少的组件。
140.处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的基于java web项目的开发方法。
141.本发明实施例提供的一种基于java web项目的开发装置,包括:开启热部署工具对java文件进行监控;当监控到java文件发生变更时,获取变更的java文件动态编译为class文件;根据web项目设定的端口号获取对应的进程id,并通过进程id对虚拟机进行复加载以完成class文件的加载过程;根据class文件确定java文件的底层模块的通信测试。该装置基于热部署工具,实现在开发过程中自动识别源代码修改、编译加载,节省统一部署的时间和手动执行的时间,提高开发效率。同时,结合虚拟化平台本身的特点,通过虚拟化平台与底层模块的正常通信检测,避免在重新加载后未进行检测可能出现底层模块与虚拟化平台不匹配,导致的服务器宕机的问题,提高开发过程的可靠性。
142.进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述基于java web项目的开发方法的步骤。
143.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
144.对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于java web项目的开发方法相同的有益效果。
145.以上对本发明所提供的一种基于java web项目的开发方法、基于java web项目的开发装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
146.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献