CN107908442A - 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质 - Google Patents

基于spring的资源加载方法、装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN107908442A
CN107908442A CN201711287985.0A CN201711287985A CN107908442A CN 107908442 A CN107908442 A CN 107908442A CN 201711287985 A CN201711287985 A CN 201711287985A CN 107908442 A CN107908442 A CN 107908442A
Authority
CN
China
Prior art keywords
resource distribution
content
resource
spring
loaded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711287985.0A
Other languages
English (en)
Other versions
CN107908442B (zh
Inventor
朱旋
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yiling Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201711287985.0A priority Critical patent/CN107908442B/zh
Publication of CN107908442A publication Critical patent/CN107908442A/zh
Application granted granted Critical
Publication of CN107908442B publication Critical patent/CN107908442B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及资源加载技术领域,具体涉及一种基于spring的资源加载方法、装置、终端设备及计算机可读存储介质。该基于spring的资源加载方法包括:调用处理bean对象的预定义函数,根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置。根据资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类,进而将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中,以使bean对象执行资源配置内容。通过本方案实现了对资源配置内容的统一加载,以保证了资源配置内容的格式统一。

Description

基于spring的资源加载方法、装置、终端设备及计算机可读存 储介质
技术领域
本发明涉及资源加载技术领域,具体而言,涉及一种基于spring的资源加载方法、装置、终端设备及计算机可读存储介质。
背景技术
一般在Java后台开发的过程中,将用到很多配置文件,但是不同系统的配置文件在形式或格式上可能不相同,导致了配置资源的不统一,使得配置资源的维护和加载变得繁琐。因此,对配置资源进行统一加载,以保证配置资源的格式统一是十分必要的。
发明内容
本发明的目的在于提供一种基于spring的资源加载方法,以实现对资源配置内容进行统一加载,以保证资源配置内容格式统一。
本发明的另一目的在于提供一种基于spring的资源加载装置,以实现对资源配置内容进行统一加载,以保证资源配置内容格式统一。
本发明的另一目的在于提供一种终端设备,以实现对资源配置内容进行统一加载,以保证资源配置内容格式统一。
本发明的另一目的在于提供一种计算机可读存储介质,以实现对资源配置内容进行统一加载,以保证资源配置内容格式统一。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种基于spring的资源加载方法,所述方法包括:调用处理bean对象的预定义函数;根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;根据所述资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类;将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
第二方面,本发明实施例还提供了一种基于spring的资源加载装置,所述装置包括:第一调用模块,用于调用处理bean对象的预定义函数;获取模块,用于根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;加载模块,用于根据所述资源配置的位置获取资源配置内容并将所述资源配置内容加载入预定义的抽象类;反射模块,用于将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
第三方面,本发明实施例还提供了一种终端设备,所述终端设备包括:存储器;处理器;以及基于spring的资源加载装置,所述基于spring的资源加载装置存储于存储中并包括一个或多个由处理器执行的软件功能模块,所述基于spring的资源加载装置包括:第一调用模块,用于调用处理 bean对象的预定义函数;获取模块,用于根据所述预定义函数获取bean 对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;加载模块,用于根据所述资源配置的位置获取资源配置内容并将所述资源配置内容加载入预定义的抽象类;反射模块,用于将预定义的抽象类中加载的资源配置内容反射入bean 对象对应的属性名称中。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所述的方法。
本发明实施例提供的一种基于spring的资源加载方法、装置、终端设备及计算机可读存储介质,该基于spring的资源加载方法及装置应用于终端设备,该计算机可读存储介质为终端设备的一部分。该基于spring的资源加载方法包括:调用处理bean对象的预定义函数,根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置。根据资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类,进而将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中,以使bean对象执行资源配置内容。通过本方案实现了对资源配置内容的统一加载,以保证了资源配置内容的格式统一。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种终端设备的结构示意图。
图2示出了本发明实施例提供的一种基于spring的资源加载方法的流程示意图。
图3示出了本发明实施例提供的一种基于spring的资源加载方法的子步骤的流程示意图。
图4示出了本发明实施例提供的一种基于spring的资源加载装置的功能模块示意图。
图示:100-终端设备;110-基于spring的资源加载装置;120-存储器; 130-存储控制器;140-处理器;150-外设接口;160-输入输出单元;170- 音频单元;180-显示单元;111-第二调用模块;112-配置模块;113-第一调用模块;114-获取模块;115-加载模块;116-反射模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
一般在Java开发过程中,会使用很多的配置文件,但是不同配置文件在形式上和格式上可能各不相同,该配置文件为某一个功能应用的参数集合,如同一个excel文件,可能对于不同系统具有不同格式的参数集合,使得多个系统之间不能共用该excel文件的配置文件,需要对该excel文件的配置文件进行进一步处理,极大地降低了工作效率。
由此,本发明实施例提供了一种基于spring(一种轻量级开源框架) 的资源加载方法,通过调用spring中的预设接口中的预定义函数以操作 spring中的bean对象得到资源配置内容的位置,进一步通过预定义的抽象类根据资源配置内容的位置获取资源配置的内容,并将获取的资源配置内容反射入bean对象中,由bean对象具体实现。由此可见,本方案通过统一的方式对资源配置内容进行加载,以使得资源配置内容的格式统一,提高了工作效率。
本发明实施例提供的一种基于spring的资源加载方法及装置均应用于终端设备,该终端设备可以是,但不限于,手机、平板电脑等智能电子设备。请参照图1,是本发明实施例提供的一种终端设备100的结构示意图,该终端设备100包括基于spring的资源加载装置110、存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170以及显示单元180。
所述存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170、显示单元180各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述基于spring的资源加载装置110包括至少一个可以软件或固件(firmware) 的形式存储于所述存储器120中或固化在所述终端设备100的操作系统(operating system,OS)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述基于spring的资源加载装置110包括的软件功能模块或计算机程序。
其中,存储器120可以是,但不限于,随机存取存储器 (Random Access Memory,RAM),只读存储器(Read Only Memory, ROM),可编程只读存储器(Programmable Read-Only Memory, PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120 用于存储程序,所述处理器140在接收到执行指令后,执行所述程序,后续本发明实施例任一实施例揭示的流过程定义的终端设备100所执行的方法可以应用于处理器140中,或者由处理器140实现。
处理器140可能是一种集成电路芯片,具有信号的处理能力。上述的处理器140可以是通用处理器,包括中央处理器 (Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器140也可以是任何常规的处理器140等。
所述外设接口150将各种输入/输出装置耦合至处理器140以及存储器120。在一些实施例中,外设接口150,处理器140以及存储控制器130可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元160用于提供给用户输入数据实现用户与所述终端设备100的交互。所述输入输出单元160可以是,但不限于,鼠标和键盘等。
音频单元170向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元180在终端设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元180可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器140进行计算和处理。
请参照图2,是本发明实施例提供的一种基于spring的资源加载方法的流程示意图,该基于spring的资源加载方法包括:
步骤S110,调用自定义扩展类以实现预设接口的业务流程,所述预设接口中包含预定义函数。
该spring中注册了预设接口,该预设接口为InstantiationAwareBeanPostProcessor。该spring具有多个bean对象,当通过getBean(beanName)方法向spring请求一个bean对象时,即在bean 对象实例化之前,需调用预设接口中的预定义函数以对bean对象进行操作,以使bean对象实例化。
由于预设接口只是注册于spring中,对于spring而言仅仅是一个抽象的标识。为了调用spring中的预设接口,需对该预设接口进行具体实现。该预设接口的具体实现方式为:调用自定义扩展类实现预设接口的业务流程,如
classStaticInjectProcessorextendsInstantiationAwareBeanPostProcessorAdapte r{},则通过调用自定义扩展类StaticInjectProcessor以实现预设接口的业务流程,同时该自定义扩展类中还包括预设接口的预定义函数,该预定义函数为ObjectpostProcessAfterInitialization(Object bean,String beanName)。通过调用自定义扩展类以实现了预设接口的业务流程,使得spring可以通过预设接口内的预定义函数对bean对象进行操作。
步骤S120,对所述自定义扩展类配置唯一标识和位置,以便于spring 对所述自定义扩展类进行查找。
在步骤S110中通过调用自定义扩展类以实现了预设接口,为了使得 spring能够查找到自定义扩展类,还需对自定义扩展类分配唯一标识和位置,以便于spring能够根据该自定义扩展类的唯一标识和位置查找到该自定义扩展类,以进一步调用该预设接口的预定义函数对bean对象进行操作。具体通过<bean id=”staticInjectProcessor”class=”StaticInjectProcessor” />对自定义扩展类进行定义,其中id为该自定义扩展类staticInjectProcessor的唯一标识,该class为该自定义扩展类的staticInjectProcessor的位置。程序具体运行时,spring将分析出该自定义扩展类staticInjectProcessor为预设接口的实现类,则将调用该自定义扩展类中的预定义函数,即预设接口的预定义函数,Object postProcessAfterInitialization(Object bean,String beanName),对bean对象进行处理。
步骤S130,调用处理bean对象的预定义函数。
即是spring获取自定义扩展类后,调用自定义扩展类中的预定义函数 ObjectpostProcessAfterInitialization(Object bean,String beanName)对bean 对象进行处理。
步骤S140,根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置。
该spring调用预定义函数后,将在预定义函数中对资源配置内容进行读取,为了获取资源配置内容,需首先获取bean对象的注解属性,该注解属性包括属性名称和注解内容。其中,bean对象根据实现的功能不同,具有多个不同种类的属性名称,如若bean对象为实现一个游戏功能,则该bean对象可能包括的属性名称为技能、等级等。若需要对bean对象的某一个属性名称进行加载资源,则需对该属性名称进行注解,经过注解之后将得到该属性名称对应的注解内容,该注解内容包括资源配置的类型和资源配置的位置。在本发明实施例中,采用自定义注解的方式对需加载资源的属性名称进行注解,其自定义注解的方式为:@interface ResourceField {String type()default"excel"String value()default"";},其中,type表示资源配置的类型,value表示资源配置的位置,此时通过ResourceField对该属性名称进行注解,用于表征该属性名称需要加载资源。
在本发明实施例中,根据预定义函数获取bean对象的注解属性的流程具体参照图3,是本发明实施例提供的步骤S140的子步骤的流程示意图,该步骤S140包括:
步骤S141,获取bean对象的所有属性名称。
通过Java发射功能获取bean对象的所有属性名称,存放在集合 propertyList中。
步骤S142,查找所有属性名称中的所有注解内容。
遍历集合propertyList中的每一个属性名称,获取每一个属性名称的注解内容,存放于annotationList列表中。
步骤S143,选取所有注解内容中的具有特定标识的注解内容。
若annotationList列表中的注解内容存在ResourceField这个特定标识,则选取该注解内容,该注解内容包括资源配置的类型和资源配置的位置。需要说明的是,本发明实施例通过ResourceField特定标识标注需要加载资源的属性名称,还可以通过其他特定标识进行标记,在本发明实施例中,该特定标识起标识作用。
步骤S144,获取所述具有特定标识的注解内容对应的属性名称以及所述具有特定标识的注解内容共同构成注解属性。
即该注解属性包括属性名称以及该属性名称对应的注解内容,并分别将属性名称和属性名称对应的注解内容保存为临时变量,在本发明实施例中,属性名称用变量beanProperty表示,属性名称对应的注解内容用变量 beanAnnotation表示。
步骤S150,根据所述资源配置的位置获取资源配置内容并将资源配置内容加载入预定义抽象类。
由于资源配置文件有很多配置项,每个配置项都有一个唯一的标识,且每个配置项都是“属性名称:值”的形式,需要说明的是,可以该配置项理解为一种数据形式,如“年龄:23”,该资源配置文件则可以理解为多个配置项的集合,可以为表格等文件。此外,该资源配置文件可以加载、更新、读取数据,现有技术中,正是由于该资源配置文件的格式不统一导致配置文件在不同系统中不能共用,因此,对该资源配置文件定义一个预定义抽象类,通过该预定义抽象类对资源对象(用于对资源配置文件进行操作)进行了一个抽象,以通过在预定义抽象类中对资源配置内容进行加载达到对资源配置文件本身进行更改的目的。该预定义抽象类的定义为: class ResourceConf{CONF_TYPE;list<Conf>confs;load(String confLocation,String confType);update();readOne();readAll()}。
在步骤S140中通过获取bean对象的注解属性,进而获取了资源配置的位置。由于在预定义抽象类中定义了load(String confLocation,String confType)方法,其中confLocation表示资源配置的位置,confType表示资源配置的类型,则通过Java调用该方法根据资源配置的位置获取资源配置的内容。
此外,根据步骤S140中获取的注解属性的资源配置的类型,进一步根据该资源配置的类型加载该资源配置的内容入预定义抽象类中,该资源配置的类型可以为excel,json,csv这三个值,其中,excel为由Microsoft 为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件,json(JavaScript Object Notation,JS对象标记)为一种轻量级的数据交换格式,csv(Comma-Separated Values)为逗号分隔值,有时也称为字符分隔值,其文件以纯文本形式存储表格数据。在本发明实施例中,以 excel文件为例说明如何加载资源配置内容入预定义抽象类中,其余类型的配置资源也采用相同的方式进行加载。
假设excel文件的格式如下:
Title columnA columnB columnC columnD
Content valueA1 valueB1 valueC1 valueD1
valueA2 valueB2 ValueC2 valueD2
其中title为表头,“columnA,content”的组合共同构成属性名称,该属性名称对应的值为“valueA1”,其余“属性:值”的组合形式以此类推得到,依次将获取的“属性:值”的多个组合存储于预定义的抽象类的列表中。
步骤S160,将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
在步骤S150中将获取的资源配置内容均加载入了预定义的抽象类中,需进一步将预定义的抽象类中加载的资源配置内容反射入bean对象中,由bean对象进行执行,以使资源配置内容进行实际运行。
由此可见,本方案提供的一种基于spring的资源加载方法,通过定义一个预定义抽象类将资源配置文件进行抽象化,并实现spring中注册的预设接口,使得spring调用预设接口中的预定义函数对bean对象进行操作得到注解内容,并根据注解内容中的资源配置的位置获取资源配置内容后注入预定义抽象类中,由预定义抽象类将资源配置内容反射于bean对象执行,以实现加载的资源格式统一,提高了工作效率。
请参照图4,是本发明实施例提供的一种基于spring的资源加载装置 110的功能模块示意图,该基于spring的资源加载装置110包括第二调用模块111、配置模块112、第一调用模块113、获取模块114、加载模块115、反射模块116。
第二调用模块111,用于调用自定义扩展类以实现预设接口的业务流程,所述预设接口中包含预定义函数。
在本发明实施例中,步骤S110可以由第二调用模块111执行。
配置模块112,用于对所述自定义扩展类配置唯一标识和位置,以便于spring对所述自定义扩展类进行查找。
在本发明实施例中,步骤S120可以由配置模块112执行。
第一调用模块113,用于调用处理bean对象的预定义函数。
在本发明实施例中,步骤S130可以由第一调用模块113执行。
获取模块114,用于根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置。
在本发明实施例中,步骤S140可以由获取模块114执行。
加载模块115,用于根据所述资源配置的位置获取资源配置内容并将所述资源配置内容加载入预定义的抽象类。
在本发明实施例中,步骤S150可以由加载模块115执行。
反射模块116,用于将预定义的抽象类中加载的资源配置内容反射入 bean对象对应的属性名称中。
在本发明实施例中,步骤S160可以由反射模块116执行。
由于在基于spring的资源加载方法部分已经详细描述,在此不再赘述。
本发明实施例还揭示了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器140执行时实现本发明实施例提供的基于 spring的资源加载方法。
综上所述,本发明实施例提供了一种基于spring的资源加载方法、装置、终端设备及计算机可读存储介质,该基于spring的资源加载方法及装置应用于终端设备,该计算机可读存储介质为终端设备的一部分。该基于 spring的资源加载方法包括:调用处理bean对象的预定义函数,根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置。根据资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类,进而将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中,以使bean对象执行资源配置内容。通过本方案实现了对资源配置内容的统一加载,以保证了资源配置内容的格式统一。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种基于spring的资源加载方法,其特征在于,所述方法包括:
调用处理bean对象的预定义函数;
根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;
根据所述资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类;
将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
2.如权利要求1所述的基于spring的资源加载方法,其特征在于,所述方法还包括:
调用自定义扩展类以实现预设接口的业务流程,所述预设接口中包含预定义函数。
3.如权利要求2所述的基于spring的资源加载方法,其特征在于,所述方法还包括:
对所述自定义扩展类配置唯一标识和位置,以便于spring对所述自定义扩展类进行查找。
4.如权利要求1所述的基于spring的资源加载方法,其特征在于,所述根据所述预定义函数获取bean对象的注解属性的步骤包括:
获取bean对象的所有属性名称;
查找所有属性名称中的所有注解内容;
选取所有注解内容中的具有特定标识的注解内容;
获取所述具有特定标识的注解内容对应的属性名称以及所述具有特定标识的注解内容共同构成注解属性。
5.如权利要求1所述的基于spring的资源加载方法,其特征在于,所述根据所述资源配置的位置获取资源配置内容并将资源配置内容加载入预定义的抽象类的步骤包括:
根据所述资源配置的类型获取资源配置内容中的属性名称以及对应的值,并以属性名称与值的数据对应格式加载入预定义的抽象类的列表中。
6.一种基于spring的资源加载装置,其特征在于,所述装置包括:第一调用模块,用于调用处理bean对象的预定义函数;
获取模块,用于根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;
加载模块,用于根据所述资源配置的位置获取资源配置内容并将所述资源配置内容加载入预定义的抽象类;
反射模块,用于将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
7.如权利要求6所述的基于spring的资源加载装置,其特征在于,所述装置还包括:
第二调用模块,用于调用自定义扩展类以实现预设接口的业务流程,所述预设接口中包含预定义函数。
8.如权利要求7所述的基于spring的资源加载装置,其特征在于,所述装置还包括:
配置模块,用于对所述自定义扩展类配置唯一标识和位置,以便于spring对所述自定义扩展类进行查找。
9.一种终端设备,其特征在于,所述终端设备包括:
存储器;
处理器;以及
基于spring的资源加载装置,所述基于spring的资源加载装置存储于存储中并包括一个或多个由处理器执行的软件功能模块,所述基于spring的资源加载装置包括:
第一调用模块,用于调用处理bean对象的预定义函数;
获取模块,用于根据所述预定义函数获取bean对象的注解属性,所述注解属性包括属性名称和注解内容,所述注解内容包括资源配置的类型和资源配置的位置;
加载模块,用于根据所述资源配置的位置获取资源配置内容并将所述资源配置内容加载入预定义的抽象类;
反射模块,用于将预定义的抽象类中加载的资源配置内容反射入bean对象对应的属性名称中。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法。
CN201711287985.0A 2017-12-07 2017-12-07 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质 Active CN107908442B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711287985.0A CN107908442B (zh) 2017-12-07 2017-12-07 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711287985.0A CN107908442B (zh) 2017-12-07 2017-12-07 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN107908442A true CN107908442A (zh) 2018-04-13
CN107908442B CN107908442B (zh) 2020-09-08

Family

ID=61853846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711287985.0A Active CN107908442B (zh) 2017-12-07 2017-12-07 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN107908442B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752601A (zh) * 2020-06-19 2020-10-09 贝壳技术有限公司 一种数据配置方法、装置、系统、电子设备及其存储介质
CN112052048A (zh) * 2020-08-07 2020-12-08 深圳市欢太科技有限公司 数据加载方法及装置、设备、存储介质
CN112181804A (zh) * 2020-08-31 2021-01-05 五八到家有限公司 一种参数校验方法、设备以及存储介质
CN113535149A (zh) * 2021-07-27 2021-10-22 在线途游(北京)科技有限公司 一种基于自定义bean的多数据源配置与解析方法及装置
CN113608779A (zh) * 2021-08-10 2021-11-05 平安国际智慧城市科技股份有限公司 服务接口配置方法、装置、设备及存储介质
CN116541105A (zh) * 2023-07-06 2023-08-04 智慧眼科技股份有限公司 一种基于注解的组件加载方法、系统、终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685166A (zh) * 2011-03-17 2012-09-19 新奥特(北京)视频技术有限公司 一种基于SpringIOC的任务分发调度方法及系统
US20150317167A1 (en) * 2014-05-02 2015-11-05 Oracle International Corporation Mechanism for class data sharing using extension and application class-loaders
CN106339237A (zh) * 2016-08-16 2017-01-18 税友软件集团股份有限公司 针对JavaEE领域WEB应用的插件加载框架及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685166A (zh) * 2011-03-17 2012-09-19 新奥特(北京)视频技术有限公司 一种基于SpringIOC的任务分发调度方法及系统
US20150317167A1 (en) * 2014-05-02 2015-11-05 Oracle International Corporation Mechanism for class data sharing using extension and application class-loaders
CN106339237A (zh) * 2016-08-16 2017-01-18 税友软件集团股份有限公司 针对JavaEE领域WEB应用的插件加载框架及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JEFF JENSEN: "《Using Spring’s ReflectionUtils to Access Private Fields》", 27 October 2015 *
TAOZHIYE: "《https://www.cnblogs.com/taozhiye/p/6594475.html》", 21 March 2017 *
爆裂码手: "《https://blog.csdn.net/qq_18860653/article/details/53218117》", 18 November 2016 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752601A (zh) * 2020-06-19 2020-10-09 贝壳技术有限公司 一种数据配置方法、装置、系统、电子设备及其存储介质
CN112052048A (zh) * 2020-08-07 2020-12-08 深圳市欢太科技有限公司 数据加载方法及装置、设备、存储介质
CN112052048B (zh) * 2020-08-07 2024-07-02 深圳市欢太科技有限公司 数据加载方法及装置、设备、存储介质
CN112181804A (zh) * 2020-08-31 2021-01-05 五八到家有限公司 一种参数校验方法、设备以及存储介质
CN112181804B (zh) * 2020-08-31 2023-09-08 五八到家有限公司 一种参数校验方法、设备以及存储介质
CN113535149A (zh) * 2021-07-27 2021-10-22 在线途游(北京)科技有限公司 一种基于自定义bean的多数据源配置与解析方法及装置
CN113608779A (zh) * 2021-08-10 2021-11-05 平安国际智慧城市科技股份有限公司 服务接口配置方法、装置、设备及存储介质
CN113608779B (zh) * 2021-08-10 2023-12-26 平安国际智慧城市科技股份有限公司 服务接口配置方法、装置、设备及存储介质
CN116541105A (zh) * 2023-07-06 2023-08-04 智慧眼科技股份有限公司 一种基于注解的组件加载方法、系统、终端及存储介质

Also Published As

Publication number Publication date
CN107908442B (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN107908442A (zh) 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质
CN104599153B (zh) 商品推荐方法、商品推荐服务器及商品推荐终端
CN112100524B (zh) 一种信息推荐的方法、装置、设备以及存储介质
US20120110565A1 (en) Chained data processing and application utilization
US10074097B2 (en) Classification engine for classifying businesses based on power consumption
CN107679737A (zh) 项目推荐的方法及装置
CN107909466A (zh) 客户关系网络展示方法、装置、设备及可读存储介质
CN106408321A (zh) 商品模板的管理方法、数据库的调用方法,装置及系统
CN107958365B (zh) 物料信息变更方法、装置、存储介质及电子设备
CN103034680A (zh) 针对终端设备的数据交互方法及装置
CN106909429A (zh) 一种同步升级方法及装置
CN108491326A (zh) 测试行为重组方法、装置及存储介质
CN105930390A (zh) 关系型数据库扩展方法及关系型数据库扩展系统
US20230244680A1 (en) Systems and methods for expedited large file processing
CN113220563B (zh) 一种测试用例生成方法、系统、存储介质及计算机设备
CN107832336A (zh) 数据处理方法及其系统
CN103020128A (zh) 与终端设备交互数据的方法与装置
CN104871193A (zh) 基于用户反馈生成应用推荐
CN111160624A (zh) 一种用户意向预测方法、用户意向预测装置及终端设备
CN112529100A (zh) 多分类模型的训练方法、装置、电子设备及存储介质
CN107798558A (zh) 用户行为数据分析方法及服务器
CN108073655A (zh) 一种数据查询方法及装置
CN108959229A (zh) 基于客户信息的策划报告生成方法、终端及存储介质
CN112419078A (zh) 产品推荐方法、装置和电子设备
CN117390011A (zh) 报表数据处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231101

Address after: No. 101, 1st to 3rd floors, Building 42, Yard 5, Fengrun Middle Road, Haidian District, Beijing, 100080

Patentee after: Shi Benxia

Address before: 11 / F, building B1, software industry phase 4.1, No.1, Software Park East Road, Donghu New Technology Development Zone, Wuhan City, Hubei Province, 430000

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231206

Address after: Building 2, No. 1 Shangdi Information Road, Haidian District, Beijing, 100080, 2104

Patentee after: BEIJING YILING TECHNOLOGY CO.,LTD.

Address before: No. 101, 1st to 3rd floors, Building 42, Yard 5, Fengrun Middle Road, Haidian District, Beijing, 100080

Patentee before: Shi Benxia