技术领域
[0001] 本
发明涉及互联网技术领域,具体涉及一种基于环境变量的项目进程运行方法及装置。
背景技术
[0002] 在
现有技术中,大多数的项目进程仅适用于在特定的运行环境下运行,当需要将项目进程在其他的运行环境下运行时,由于运行环境的不同,可能会在运行过程中出现错误,甚至可能会出现运行失败的问题。例如,某个项目进程仅适用于在Windows环境下运行,如果想要将该项目进程在Linux环境下运行时,由于Windows环境和Linux环境所使用的资源是不完全一样的,因此有可能会出现运行失败的问题。
[0003] 为了使项目进程能够在其他的运行环境下运行,就需要技术开发人员根据具体的运行环境对项目进程相应的代码进行手动
修改。然而这种修改会给技术开发人员带来很大的工作量,而且一旦某些代码修改不到位或不准确,会导致项目进程运行失败。在运行失败之后,技术开发人员还需投入更多精
力去调试bug,造成人力成本和时间成本的浪费,从而导致项目开发成本过高。
[0004] 如何方便地使项目进程在多种运行环境下都能成功运行,已成为了一个需要解决的问题。
发明内容
[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于环境变量的项目进程运行方法及装置。
[0006] 根据本发明的一个方面,提供了一种基于环境变量的项目进程运行方法,项目进程适用于在多种运行环境下运行,该方法包括:
[0007] 预先配置每种运行环境对应的配置文件;
[0008] 在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件;
[0009] 根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0010] 根据本发明的另一方面,提供了一种基于环境变量的项目进程运行装置,项目进程适用于在多种运行环境下运行,该装置包括:
[0011] 配置模
块,适于预先配置每种运行环境对应的配置文件;
[0012] 加载模块,适于在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件;
[0013] 注入模块,适于根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0014] 根据本发明提供的技术方案,预先配置每种运行环境对应的配置文件,在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件,然后根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。本发明提供的技术方案根据所获取的环境变量值,加载环境变量值对应的配置文件,方便地使项目进程在多种运行环境下都能运行,无需根据不同的运行环境对项目进程相应的代码进行手动修改,从而减少了修改代码所投入的人力成本和时间成本,也避免了因修改代码错误而带来的问题。
[0015] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照
说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0016] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0017] 图1示出了根据本发明一个
实施例的基于环境变量的项目进程运行方法的流程示意图;
[0018] 图2示出了根据本发明另一个实施例的基于环境变量的项目进程运行方法的流程示意图;
[0019] 图3示出了根据本发明一个实施例的基于环境变量的项目进程运行装置的功能结构示意图;
[0020] 图4示出了根据本发明另一个实施例的基于环境变量的项目进程运行装置的功能结构示意图。
具体实施方式
[0021] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022] 图1示出了根据本发明一个实施例的基于环境变量的项目进程运行方法的流程示意图,其中,项目进程适用于在多种运行环境下运行,如图1所示,该方法包括如下步骤:
[0023] 步骤S100,预先配置每种运行环境对应的配置文件。
[0024] 为了使项目进程在多种运行环境下都能运行,在步骤S100中,需要根据不同的运行环境,预先配置每种运行环境对应的配置文件。例如,在
软件开发、软件测试和软件生产的过程中,所使用的
服务器的运行环境是不同的。因此,运行环境可具体为:开发环境、测试环境、或生产环境,而开发环境还可具体为:Windows开发环境或Linux开发环境。根据实际需求,本领域技术人员还可设置其他的运行环境,此处不做限定。
[0025] 步骤S101,在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件。
[0026] 在步骤S100完成预先配置每种运行环境对应的配置文件之后,在项目进程启用时,执行步骤S101,获取写入的环境变量值,加载环境变量值对应的配置文件。其中,在项目进程启用时所写入的环境变量值由用于运行项目进程的服务器提供,具体地,在项目进程启用时所写入的环境变量值依赖于服务器的运行环境。例如,开发环境相对应的环境变量值可以为developing;测试环境相对应的环境变量值可以为testing;生产环境相对应的环境变量值可以为producing。而当开发环境具体包括Windows开发环境和Linux开发环境时,Windows开发环境相对应的环境变量值可以为developing1,Linux开发环境相对应的环境变量值可以为developing2。
[0027] 另外,由于服务器的运行环境一般情况下不会发生改变,因此可以只获取一次环境变量值,以后当项目进程启用时,直接根据第一次所获取的环境变量值,加载环境变量值对应的配置文件。
[0028] 步骤S102,根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0029] 在步骤S101加载了环境变量值对应的配置文件之后,步骤S102就可根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0030] 根据本实施例提供的基于环境变量的项目进程运行方法,预先配置每种运行环境对应的配置文件,在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件,然后根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。本发明提供的技术方案根据所获取的环境变量值,加载环境变量值对应的配置文件,方便地使项目进程在多种运行环境下都能运行,无需根据不同的运行环境对项目进程相应的代码进行手动修改,从而减少了修改代码所投入的人力成本和时间成本,也避免了因修改代码不正确而带来的问题。
[0031] 图2示出了根据本发明另一个实施例的基于环境变量的项目进程运行方法的流程示意图,其中,项目进程适用于在多种运行环境下运行,如图2所示,该方法包括如下步骤:
[0032] 步骤S200,预先配置每种运行环境对应的配置文件。
[0033] 为了使项目进程在多种运行环境下都能运行,在步骤S200中,需要根据不同的运行环境,预先配置每种运行环境对应的配置文件。其中,运行环境可具体为:开发环境、测试环境、或生产环境,而开发环境还可具体为:Windows开发环境或Linux开发环境。根据实际需求,本领域技术人员还可设置其他的运行环境,此处不做限定。
[0034] 例如,为了使项目进程在开发环境和测试环境下都能运行,在步骤S200中需要预先配置开发环境对应的配置文件和测试环境对应的配置文件。
[0035] 步骤S201,预先定义代理类。
[0036] 为了能够方便地根据所加载的配置文件记录的配置信息注入相应的实例,在项目进程启用之前,还需预先定义代理类,该代理类用于调用实例的
接口来注入实例。其中,步骤S200和步骤S201可以同时进行,也可以先执行步骤S200,再执行步骤S201。
[0037] 步骤S202,在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件。
[0038] 在完成预先配置每种运行环境对应的配置文件和预先定义代理类之后,在项目进程启用时,执行步骤S202,获取写入的环境变量值,加载环境变量值对应的配置文件。其中,在项目进程启用时所写入的环境变量值由用于运行项目进程的服务器提供,具体地,在项目进程启用时所写入的环境变量值依赖于服务器的运行环境。
[0039] 例如,运行项目进程的服务器的运行环境为Windows开发环境,与Windows开发环境相对应的环境变量值为developing1,在步骤S200和步骤S201中已预先配置了Windows开发环境对应的配置文件和预先定义了代理类,那么在项目进程启用时,执行步骤S202,获取写入的环境变量值,加载该环境变量值对应的配置文件,即加载Windows开发环境对应的配置文件。
[0040] 步骤S203,根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。
[0041] 假设,项目进程是由Java语言开发的,在步骤S202加载了环境变量值对应的配置文件之后,通过Java
框架中的Spring的IOC(控制反转,Inversion of Control)机制,根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。
[0042] 例如,运行项目进程的服务器的运行环境为Windows开发环境,在项目进程启用时,步骤S202加载所获取的环境变量值对应的配置文件,即加载Windows开发环境对应的配置文件,然后执行步骤S203,根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。假设根据Windows开发环境对应的配置文件记录的配置信息可知,当运行到项目进程中的
子进程1时,需使用实例1,则当运行到项目进程中的子进程1时,在步骤S203中由代理类调用实例1的接口来注入实例1。
[0043] 根据本实施例提供的基于环境变量的项目进程运行方法,预先配置每种运行环境对应的配置文件和预先定义代理类,在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件,然后根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。本发明提供的技术方案不仅根据所获取的环境变量值,加载环境变量值对应的配置文件,方便地使项目进程在多种运行环境下都能运行,而且通过代理类便捷地实现了实例的注入。另外本发明提供的技术方案无需根据不同的运行环境对项目进程相应的代码进行手动修改,从而减少了修改代码所投入的人力成本和时间成本,也避免了因修改代码不正确而带来的问题。
[0044] 图3示出了根据本发明一个实施例的基于环境变量的项目进程运行装置的功能结构示意图,其中,项目进程适用于在多种运行环境下运行,如图3所示,该装置包括:配置模块310、加载模块320和注入模块330。
[0045] 配置模块310,适于预先配置每种运行环境对应的配置文件。
[0046] 为了使项目进程在多种运行环境下都能运行,配置模块310需要根据不同的运行环境,预先配置每种运行环境对应的配置文件。其中,运行环境可具体为:开发环境、测试环境、或生产环境,而开发环境还可具体为:Windows开发环境或Linux开发环境。根据实际需求,本领域技术人员还可设置其他的运行环境,此处不做限定。
[0047] 加载模块320,适于在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件。
[0048] 在配置模块310预先配置了每种运行环境对应的配置文件之后,在项目进程启用时,触发加载模块320,获取写入的环境变量值,加载环境变量值对应的配置文件。其中,在项目进程启用时所写入的环境变量值由用于运行项目进程的服务器提供,具体地,在项目进程启用时所写入的环境变量值依赖于服务器的运行环境。
[0049] 注入模块330,适于根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0050] 在加载模块320加载了环境变量值对应的配置文件之后,注入模块330根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。
[0051] 根据本实施例提供的基于环境变量的项目进程运行装置,通过配置模块预先配置每种运行环境对应的配置文件,在项目进程启用时,通过加载模块获取写入的环境变量值,加载环境变量值对应的配置文件,然后注入模块根据所加载的配置文件记录的配置信息,注入相应的实例以运行项目进程。本发明提供的技术方案根据所获取的环境变量值,加载环境变量值对应的配置文件,方便地使项目进程在多种运行环境下都能运行,无需根据不同的运行环境对项目进程相应的代码进行手动修改,从而减少了修改代码所投入的人力成本和时间成本,也避免了因修改代码不正确而带来的问题。
[0052] 图4示出了根据本发明另一个实施例的基于环境变量的项目进程运行装置的功能结构示意图,其中,项目进程适用于在多种运行环境下运行,如图4所示,该装置包括:配置模块410、定义模块420、加载模块430和注入模块440。
[0053] 配置模块410,适于预先配置每种运行环境对应的配置文件。
[0054] 为了使项目进程在多种运行环境下都能运行,配置模块410需要根据不同的运行环境,预先配置每种运行环境对应的配置文件。其中,运行环境可具体为:开发环境、测试环境、或生产环境,而开发环境还可具体为:Windows开发环境或Linux开发环境。例如,为了使项目进程在开发环境和测试环境下都能运行,配置模块410需要预先配置开发环境对应的配置文件和测试环境对应的配置文件。根据实际需求,本领域技术人员还可设置其他的运行环境,此处不做限定。
[0055] 定义模块420,适于在项目进程启用之前,预先定义代理类。
[0056] 为了能够方便地根据所加载的配置文件记录的配置信息注入相应的实例,在项目进程启用之前,还需定义模块420预先定义代理类,该代理类用于调用实例的接口来注入实例。其中,配置模块410和定义模块420可以同时触发,也可以先触发配置模块410,再触发定义模块420。
[0057] 加载模块430,适于在项目进程启用时,获取写入的环境变量值,加载环境变量值对应的配置文件。
[0058] 在配置模块410预先配置了每种运行环境对应的配置文件和定义模块420预先定义了代理类之后,在项目进程启用时,触发加载模块430,获取写入的环境变量值,加载环境变量值对应的配置文件。其中,在项目进程启用时所写入的环境变量值由用于运行项目进程的服务器提供,具体地,在项目进程启用时所写入的环境变量值依赖于服务器的运行环境。
[0059] 例如,运行项目进程的服务器的运行环境为Windows开发环境,与Windows开发环境相对应的环境变量值为developing1,配置模块410已预先配置了Windows开发环境对应的配置文件,且定义模块420预先定义了代理类,那么在项目进程启用时,触发加载模块430,获取写入的环境变量值,加载该环境变量值对应的配置文件,即加载Windows开发环境对应的配置文件。
[0060] 注入模块440,适于根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。
[0061] 假设,项目进程是由Java语言开发的,在加载模块430加载了环境变量值对应的配置文件之后,通过Java框架中的Spring的IOC机制,注入模块440根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。
[0062] 例如,运行项目进程的服务器的运行环境为Windows开发环境,在项目进程启用时,加载模块430加载了所获取的环境变量值对应的配置文件,即加载Windows开发环境对应的配置文件,然后注入模块440根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。假设根据Windows开发环境对应的配置文件记录的配置信息可知,当运行到项目进程中的子进程1时,需使用实例1,则当运行到项目进程中的子进程1时,注入模块440根据Windows开发环境对应的配置文件记录的配置信息,由代理类调用实例1的接口来注入实例1。
[0063] 根据本实施例提供的基于环境变量的项目进程运行装置,通过配置模块预先配置每种运行环境对应的配置文件,并通过定义模块预先定义代理类,在项目进程启用时,通过加载模块获取写入的环境变量值,加载环境变量值对应的配置文件,然后注入模块根据所加载的配置文件记录的配置信息,由代理类调用相应的实例的接口来注入相应的实例以运行项目进程。本发明提供的技术方案不仅根据所获取的环境变量值,加载环境变量值对应的配置文件,方便地使项目进程在多种运行环境下都能运行,而且通过代理类便捷地实现了实例的注入。另外本发明提供的技术方案无需根据不同的运行环境对项目进程相应的代码进行手动修改,从而减少了修改代码所投入的人力成本和时间成本,也避免了因修改代码不正确而带来的问题。
[0064] 在此提供的
算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0065] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0066] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个
权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0067] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、
摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0068] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0069] 本发明的各个部件实施例可以以
硬件实现,或者以在一个或者多个处理器上运行的
软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用
微处理器或者数字
信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,
计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网
网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0070] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0071] 本发明公开了:
[0072] A1、一种基于环境变量的项目进程运行方法,所述项目进程适用于在多种运行环境下运行,所述方法包括:
[0073] 预先配置每种运行环境对应的配置文件;
[0074] 在项目进程启用时,获取写入的环境变量值,加载所述环境变量值对应的配置文件;
[0075] 根据所加载的配置文件记录的配置信息,注入相应的实例以运行所述项目进程。
[0076] A2、根据A1所述的方法,在项目进程启用时所写入的环境变量值由用于运行所述项目进程的服务器提供。
[0077] A3、根据A2所述的方法,在项目进程启用时所写入的环境变量值依赖于所述服务器的运行环境。
[0078] A4、根据A1-A3任一项所述的方法,还包括:在项目进程启用之前,预先定义代理类;
[0079] 所述根据所加载的配置文件记录的配置信息,注入相应的实例以运行所述项目进程具体为:根据所加载的配置文件记录的配置信息,由所述代理类调用相应的实例的接口来注入相应的实例以运行所述项目进程。
[0080] A5、根据A1-A4任一项所述的方法,所述运行环境具体为:开发环境、测试环境、或生产环境。
[0081] A6、根据A5所述的方法,所述开发环境具体为:Windows开发环境或Linux开发环境。
[0082] B7、一种基于环境变量的项目进程运行装置,所述项目进程适用于在多种运行环境下运行,所述装置包括:
[0083] 配置模块,适于预先配置每种运行环境对应的配置文件;
[0084] 加载模块,适于在项目进程启用时,获取写入的环境变量值,加载所述环境变量值对应的配置文件;
[0085] 注入模块,适于根据所加载的配置文件记录的配置信息,注入相应的实例以运行所述项目进程。
[0086] B8、根据B7所述的装置,在项目进程启用时所写入的环境变量值由用于运行所述项目进程的服务器提供。
[0087] B9、根据B8所述的装置,在项目进程启用时所写入的环境变量值依赖于所述服务器的运行环境。
[0088] B10、根据B7-B9任一项所述的装置,还包括:定义模块,适于在项目进程启用之前,预先定义代理类;
[0089] 所述注入模块进一步适于:根据所加载的配置文件记录的配置信息,由所述代理类调用相应的实例的接口来注入相应的实例以运行所述项目进程。
[0090] B11、根据B7-B10任一项所述的装置,所述运行环境具体为:开发环境、测试环境、或生产环境。
[0091] B12、根据B11所述的装置,所述开发环境具体为:Windows开发环境或Linux开发环境。