首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

spring框架泛型依赖注入方法、装置及计算机设备、存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:平安科技(深圳)有限公司

摘要:本发明属于人工智能技术领域,涉及一种spring框架泛型依赖注入方法、装置及计算机设备、存储介质,所述方法包括:在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;根据操作路径获取class文件,收集对应于一个依赖对象的class文件形成class文件集合;根据所述class文件集合中的每个class文件生成bean对象并注入所述目标bean对象的属性中,实现泛型依赖注入。本发明提供的方案可应用于自身不具有泛型依赖注入功能的spring框架,通过在spring容器启动之后从设定的路径获取class文件来实现泛型依赖注入,这种方式能够简化对象之间的依赖关系,程序更加简化,容易阅读,侵入性弱,生成的依赖对象在构造完成后可马上进入就绪状态,能提高程序运行效率。

主权项:1.一种spring框架泛型依赖注入方法,其特征在于,所述方法应用于不具有泛型依赖注入功能的spring框架版本,所述方法包括:监听spring容器的启动过程,在监测到spring容器启动结束后,生成若干bean对象,获取所述若干bean对象中需要进行泛型依赖注入的目标bean对象的操作路径;根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合,其中所述class文件为定义了一个类或者接口的二进制文件,基于所述class文件能够得到相应的类或接口;遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入;其中,所述判断每个获取的class文件是否对应于一个依赖对象的步骤包括:获取各所述class文件的类标识信息和依赖标识信息,根据所述类标识信息确定对应于类的class文件,根据所述依赖标识信息从所述对应于类的class文件中筛选对应于一个依赖对象的class文件。

全文数据:spring框架泛型依赖注入方法、装置及计算机设备、存储介质技术领域本发明实施例属于人工智能技术领域,尤其涉及一种spring框架泛型依赖注入方法、装置及计算机设备、存储介质。背景技术对于基于spring框架的应用程序,程序功能的实现过程中,需生成一系列的bean对象,通过操作这些bean对象来实现具体的功能。bean对象是java类的实例化,java类包含一系列的方法和属性,这些方法往往会依赖其他类的方法来运行,因此在生成bean对象的过程中会利用到这种依赖关系,通过依赖关系来引用依赖对象的方法和属性,并将其注入到bean对象中,现有依赖注入方式主要包括构造方法注入constructorinjection,setter方法注入setterinjection以及接口注入interfaceinjection三类。Java类使用泛型时可以继承其他类的方法和属性,从而可以复用代码,减少编程量,解决向下转型所带来的安全隐患,其核心的组成就是在声明类或接口的时候不设置参数或属性的类型,使用泛型之后,所有类中属性都是动态设置的。然而,当java类使用泛型继承其他类的方法和属性时,在spring4.0以下的版本框架无法通过上述三种方式来实现依赖注入。此外,对于复杂的依赖关系,比如依赖对象比较多的时候,如果采用构造方法注入,会因参数列表较长而导致构造器过于臃肿,使得难以阅读,Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,因而导致性能下降;采用setter方法注入尽管可以解决性能下降的问题,然而生成的依赖对象无法在构造完成后马上进入就绪状态;接口注入比较死板和烦琐,如果需要注入依赖对象,被注入对象就必须声明和实现另外的接口,且其强制被注入对象实现不必要的接口,侵入性太强。发明内容有鉴于此,本发明实施例提供一种spring框架泛型依赖注入方法、装置及计算机设备、存储介质,以解决现有技术中spring4.0以下的版本框架不支持泛型依赖注入方式的问题,以及解决spring4.0以下的版本框架支持的注入方式或容易导致构造器臃肿难以阅读,或生成的依赖对象在构造完成后无法马上进入就绪状态,或侵入性太强的问题。第一方面,本发明实施例提供一种spring框架泛型依赖注入方法,包括:监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合;遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入。作为本发明可实施的方式,所述方法还包括:当所述判断结果不存在对应于一个依赖对象的class文件,提示操作错误,重新请求新的操作路径,根据新的操作路径获取新的class文件,并判断每个新获取的class文件是否对应于一个依赖对象。作为本发明可实施的方式,所述监听spring容器的启动过程的步骤包括:在所述spring容器启动的同时开启对所述spring容器的启动过程的监听;或者在所述spring容器启动的同时开始计时,当计时达到预设的时长时,开启对所述spring容器的启动过程的监听。作为本发明可实施的方式,在所述根据所述class文件集合中的每个class文件生成bean对象的步骤之后还包括:生成各所述bean对象之间的依赖关系,将各所述bean对象之间的依赖关系一并注入所述目标bean对象的属性中。作为本发明可实施的方式,在所述spring容器启动之前,所述方法包括:配置所述目标bean对象的操作路径;其中,当配置有两条以上操作路径时,所述获取需要进行泛型依赖注入的目标bean对象的操作路径包括:获取配置的全部操作路径,或者根据获取指令中的配置信息从所述两条以上操作路径中获取至少一条操作路径。作为本发明可实施的方式,当配置有两条以上操作路径时,所述根据所述class集合中的每个class文件生成bean对象包括:根据所述class集合中的每个class文件通过反射和动态代理的方式生成bean对象。作为本发明可实施的方式,所述判断每个获取的class文件是否对应于一个依赖对象的步骤包括:根据类标识信息确定对应于类的class文件,在根据依赖标识信息从所述对应于类的class文件中筛选对应于一个依赖对象的class文件。第二方面,本发明实施例提供一种spring框架泛型依赖注入装置,包括:操作路径获取模块,用于监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;class文件集合获取模块,用于根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合;泛型依赖注入模块,用于遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入。第三方面,本发明实施例提供一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使得所述至少一个处理器能够执行如上所述的spring框架泛型依赖注入方法的步骤。第四方面,一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如上所述的spring框架泛型依赖注入方法的步骤。根据本发明实施例提供的spring框架泛型依赖注入方法、装置及计算机设备、存储介质,可以应用于自身不具有泛型依赖注入功能的spring框架版本,通过在spring容器启动之后从设定的路径获取class文件来实现泛型依赖注入,这种方式能够简化对象之间的依赖关系,使得程序更加简化,容易阅读,同时侵入性弱,生成的依赖对象在构造完成后可马上进入就绪状态,能有效提高程序运行效率。附图说明为了更清楚地说明本发明的方案,下面将对实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的spring框架泛型依赖注入方法的流程图;图2为本发明实施例提供的spring框架泛型依赖注入装置的结构框图;图3为本发明实施例提供的spring框架泛型依赖注入装置的另一结构框图;图4为本发明实施例提供的计算机设备的结构框图。具体实施方式为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在说明书中的各个位置出现的“实施例”该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。本发明实施例提供一种spring框架泛型依赖注入方法,具体应用于自身不具备泛型依赖注入功能的spring框架版本,能够优化编程过程,如图1所示的流程框图,所述spring框架泛型依赖注入方法包括:S101、监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径。此处的目标bean对象是一个依赖对象,依赖对象的生成过程需依赖于至少一个被依赖对象;此处的操作路径是指待注入目标bean对象的类的操作路径。S102、根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合。S103、遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入。在本发明实施例中,对于不具有泛型依赖注入功能的spring框架版本,通过泛型依赖注入生成目标bean对象与spring框架中传统的通过spring容器生成目标bean对象的方式不同,传统的通过spring容器生成目标bean对象的方式是在spring容器启动的过程中进行的,而泛型依赖注入则无法在spring容器启动过程中实现,故需要在spring容器启动结束之后单独来实现目标bean对象的泛型依赖注入。在spring框架运行时,spring容器在启动过程中会生成一系列的bean对象,以及生成这些bean对象之间的依赖关系,这些bean对象包含的属性或方法一般可通过接口注入、构造器注入、setter注入等方式注入,但是却不包含泛型注入,因此通过在spring容器之外配置的需要泛型依赖注入的目标bean对象的操作路径来获取需要的class文件,基于class文件来生成bean对象,并将生成的bean对象注入目标bean对象的属性中,以此来实现目标bean对象的泛型依赖注入。在本发明实施例中,步骤S102所述的class文件对应一个依赖对象是指该class文件在一个依赖对象的生成过程中会被直接或者间接用到,比如一个依赖对象A的生成依赖于被依赖对象B和被依赖对象C,而被依赖对象B和被依赖对象C的生成不需要依赖其他对象,此时被依赖对象B和被依赖对象C各自对应的class文件直接用于依赖对象A的生成,假如被依赖对象B和或被依赖对象C的生成也需要依赖其他对象,也即被依赖对象B和或被依赖对象C本身也是一个依赖对象,若被依赖对象B需依赖于被依赖对象D,则被依赖对象D对应的class文件则是间接用于依赖对象A的生成。在本实施例中,class文件具体是定义了一个类或者接口的二进制文件,基于class文件能够得到相应的类或接口,需要说明的是,类或者接口的定义信息可以是直接包含在class文件中,也可以是通过类加载器生成,除非特殊说明,本实施例中提到的类或者接口的定义信息直接包含在class文件中,由于依赖对象是一个类,则与依赖对象相对应的被依赖对象也必须是一个类。在本发明一些实施例中,所述判断每个获取的class文件是否对应于一个依赖对象的步骤包括:根据类标识信息确定对应于类的class文件,在根据依赖标识信息从所述对应于类的class文件中筛选对应于一个依赖对象的class文件。具体的,所述类标识信息可以是包含在class文件中的信息,也可以是在class文件以外配置的信息,对于前者,可以在class文件的文件结构中包含类或者接口的特征码信息,通过识别特征码信息达到识别类或者接口的目的,对于后者,可通过独立的配置文件来配置目标路径下各class文件所对应的类标识信息;而对于所述依赖标识信息,可以是包含在class文件中的信息,也可以是在class文件以外配置的信息,其中对于后者,可通过独立的配置文件来配置,或者是在目标bean对象的属性中配置。在步骤S103中,在本发明一些实施例中,所述class文件可通过反射和动态代理的方式生成bean对象,所述的反射和动态代理属于java程序的内部机制,其中,在java程序的运行时刻,对于任何一个类都能够知道它的所有属性和方法,对任意一个bean对象都能够调用它的任意方法和属性,这种动态获取信息以及动态调用方法的功能称为java的反射机制;动态代理则是根据用户提供类名、方法名、参数来执行相关方法,并返回结果的过程。在这里,反射和动态代理的目的是对class文件定义的类进行实例化以获得bean对象。本发明实施例中,需要进行泛型依赖注入的目标bean对象的操作路径对应的目标位置可以是本地存储器也可以是云存储器。在本发明一些实施例中,在步骤S102中,所述spring框架泛型依赖注入方法还可包括:当所述判断结果不存在对应于一个依赖对象的class文件,提示操作错误,重新请求新的操作路径,根据新的操作路径获取新的class文件,并判断每个新获取的class文件是否对应于一个依赖对象;通过这种方式可以避免操作路径输入错误导致注入失败的情况。在本发明一些实施例中,所述监听spring容器的启动过程的步骤具体可以是在所述spring容器启动的同时开启对所述spring容器的启动过程的监听,直到所述spring容器的启动结束时停止监听。在另一些实施例中,所述监听spring容器的启动过程的步骤具体也可以是在所述spring容器启动的同时开始计时,当计时达到预设的时长时,开启对所述spring容器的启动过程的监听,直到所述spring容器的启动结束时停止监听,这样可以在spring容器的启动时间较长的情况下不必一直监听而浪费系统资源,当然这种监听方式的前提是能够预估所述spring容器的启动时长或者预先统计过所述spring容器的启动时长,计时时长必须低于所述spring容器的启动时长。当然,在实际方案中,所述的计时时间可根据预估的所述spring容器的启动时长的变化而对应实时调整,保证计时时长低于所述spring容器的启动时长即可。作为本发明可实施的方式,在所述根据所述class文件集合中的每个class文件生成bean对象的步骤之后还包括:生成各所述bean对象之间的依赖关系,将各所述bean对象之间的依赖关系一并注入所述目标bean对象的属性中。在本发明一些实施例中,在所述spring容器启动之前,所述方法包括配置所述目标bean对象的操作路径的步骤。在本实施例中,配置所述目标bean对象的操作路径可通过实时获取输入端输入的操作路径的方式来实现,这种方式可以实时配置新的操作路径;此外,配置需要进行泛型依赖注入的目标bean对象的操作路径也可以是通过读取预存的配置文件,从配置文件中读取操作路径信息的方式来实现。在本发明一些实施例中,在进行操作路径的配置过程中,可配置多条操作路径,当配置有两条以上操作路径时,获取所述目标bean对象的操作路径具体可包括获取配置的全部操作路径,以从多个目标位置中读取class文件,存在这样的情况,读取的各class文件中,存在一个class文件的不同版本在class文件中可包含标识版本的信息,则可获取最新版本的class文件,而将其他版本的class文件从获取到的全部class文件中剔除。在另一些实施例中,所述获取需要进行泛型依赖注入的目标bean对象的操作路径的步骤具体可包括根据获取指令中的配置信息从所述两条以上操作路径中筛选获取其中的一条或者几条操作路径。比如有三条操作路径,三条操作路径对应的目标位置中的修改时间不同,可获取最近修改的目标位置对应的操作路径。下面以一个实例对上述所述spring框架泛型依赖注入方法中的步骤进行解释说明。对于大多数的通过java实现的web项目,通常都包括控制层controller、业务层service、数据操作层dao和数据表实体model这四个层面的代码实现,各层面之间存在调用关系或者操作关系,比如控制层调用业务层,业务层再调用数据操作层,操作层直接操作数据库,这三个层面都会不同程度的使用到数据表实体,因此通过java实现的web项目一般的代码结构为:业务层是控制层的属性,数据操作层是业务层的属性,而数据表实体是控制层、业务层、数据操作层这三个层面的类的方法中的入参或者返回类型。其中,在数据操作层、业务层都会具备有对数据表进行增删改查的操作,只是入参和返回值类型对应了不同的数据表实体,虽然数据操作层、业务层的类中的方法不同,但是实际的操作逻辑是一致的,只是针对的是不同的数据单操作,因此存在重复的代码编写的可能,对于大型的web项目开发,通过泛型可以解决重复编写代码的问题,即业务层通过泛型继承数据操作层的对数据表的增删改查的操作方法,具体可以通过泛型依赖注入的方式将数据操作层对数据表的增删改查的操作方法注入到业务层。假如现在包括数据操作层声明了四个类,分别包含有增加操作方法、删除操作方法、修改操作方法和查找操作方法,这四个类需要被业务层继承,那么首先配置操作路径,此处是指配置数据操作层中待注入的四个方法类的操作路径,配置完成后持续监听spring容器的启动过程,当监测到spring容器启动结束时获取四个方法类的操作路径,根据操作路径从目标位置获取class文件,从中找到这四个方法类对应的class文件形成class文件集合,基于该class文件集合,对所述class文件集合中的每个class文件通过反射和动态代理的方式生成对应的bean对象也即依赖对象,如果这四个bean对象之间存在依赖关系,还会生成这四个bean对象之间的依赖关系,而后将生成这四个bean对象及四个bean对象之间的依赖关系注入业务层中的目标bean对象的属性中,完成泛型依赖注入,之后通过调用这些目标bean对象,业务层也实现了增删改查的操作方法,即实现了泛型依赖注入。根据本发明实施例提供的spring框架泛型依赖注入方法,可以应用于自身不具有泛型依赖注入功能的spring框架版本,通过在spring容器启动之后从设定的路径获取class文件来实现泛型依赖注入,这种方式能够简化对象之间的依赖关系,使得程序更加简化,容易阅读,同时侵入性弱,生成的依赖对象在构造完成后可马上进入就绪状态,能有效提高程序运行效率。本发明实施例还提供一种spring框架泛型依赖注入装置,以在不具有泛型依赖注入功能的spring框架版本中实现泛型依赖注入,如图2所示,所述spring框架泛型依赖注入装置包括操作路径获取模块10、class文件集合获取模块20和泛型依赖注入模块30,其中:所述操作路径获取模块10用于监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;此处的目标bean对象是一个依赖对象,依赖对象的生成过程需依赖于至少一个被依赖对象;此处的操作路径是指待注入目标bean对象的类的操作路径。本发明实施例中,需要进行泛型依赖注入的目标bean对象的操作路径对应的目标位置可以是本地存储器也可以是云存储器。所述class文件集合获取模块20用于根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合;其中关于所述的class文件对应一个依赖对象的说明可参阅上述方法实施例中的相关技术内容描述,在此不再赘述。在本发明一些实施例中,所述class文件集合获取模块20判断每个获取的class文件是否对应于一个依赖对象时具体用于根据类标识信息确定对应于类的class文件,在根据依赖标识信息从所述对应于类的class文件中筛选对应于一个依赖对象的class文件;关于所述类标识信息和所述依赖标识信息的说明可参阅上述方法实施例中的相关技术内容描述,在此不再赘述。在本发明另一些实施例中,所述class文件集合获取模块20具体还用于当所述判断结果不存在对应于一个依赖对象的class文件时,提示操作错误,重新请求新的操作路径,根据新的操作路径获取新的class文件,并判断每个新获取的class文件是否对应于一个依赖对象;通过这种方式可以避免操作路径输入错误导致注入失败的情况。所述泛型依赖注入模块30用于遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入;在本实施例中,所述class文件可通过反射和动态代理的方式生成bean对象,关于所述的反射和动态代理的说明可参阅上述方法实施例中的相关技术内容描述,在此不再赘述。在本发明一些实施例中,所述操作路径获取模块10监听spring容器的启动过程时具体用于在所述spring容器启动的同时开启对所述spring容器的启动过程的监听,直到所述spring容器的启动结束时停止监听。在另一些实施例中,如图3所示,所述spring框架泛型依赖注入装置还可包括计时模块40,所述操作路径获取模块10监听spring容器的启动过程时具体用于在所述spring容器启动的同时调用所述计时模块40开始计时,当所述计时模块40计时达到预设的时长时,所述操作路径获取模块10开启对所述spring容器的启动过程的监听,直到所述spring容器的启动结束时停止监听,这样可以在spring容器的启动时间较长的情况下不必一直监听而浪费系统资源,当然这种监听方式的前提是能够预估所述spring容器的启动时长或者预先统计过所述spring容器的启动时长,所述计时模块40的计时时长必须低于所述spring容器的启动时长。当然,在实际方案中,所述计时模块40计时的计时时间可根据预估的所述spring容器的启动时长的变化而对应实时调整,保证所述计时模块40的计时时长低于所述spring容器的启动时长即可。在本发明一些实施例中,在所述泛型依赖注入模块30根据所述class文件集合中的每个class文件生成bean对象之后,所述泛型依赖注入模块30还用于生成各所述bean对象之间的依赖关系,将各所述bean对象之间的依赖关系一并注入所述目标bean对象的属性中。在本发明一些实施例中,在所述spring容器启动之前,如图3所示,spring框架泛型依赖注入装置还可包括配置模块50,所述配置模块50用于配置所述目标bean对象的操作路径。在本实施例中,所述配置模块50可包括输入入口,通过实时获取输入入口输入的操作路径来实现配置;在另一些实施例中,所述配置模块50也可以通过操作配置文件的方式实现配置。在可实施的方案中,所述配置模块50在进行操作路径的配置过程中,可配置多条操作路径,当所述配置模块50配置有两条以上操作路径时,所述操作路径获取模块10获取所述目标bean对象的操作路径时具体可用于获取配置的全部操作路径,以从多个目标位置中读取class文件;在另一些可实施的方案中,当所述配置模块50配置有两条以上操作路径时,所述操作路径获取模块10获取所述目标bean对象的操作路径时具体可用于根据获取指令中的配置信息从所述两条以上操作路径中获取一条或者几条操作路径。根据本发明实施例提供的spring框架泛型依赖注入装置,可以应用于自身不具有泛型依赖注入功能的spring框架版本,通过在spring容器启动之后从设定的路径获取class文件来实现泛型依赖注入,这种方式能够简化对象之间的依赖关系,使得程序更加简化,容易阅读,同时侵入性弱,生成的依赖对象在构造完成后可马上进入就绪状态,能有效提高程序运行效率。本发明实施例还提供一种计算机设备,如图4所示,所述计算机设备包括至少一个处理器401,以及与所述至少一个处理器401通信连接的存储器402,图4中示出一个处理器401,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行,以使所述至少一个处理器401能够执行如上所述的spring框架泛型依赖注入方法的步骤。具体的,本发明实施例中的存储器402为非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请上述实施例中的spring框架泛型依赖注入方法对应的程序指令模块;所述处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及进行数据处理,即实现上述方法实施例中所述的spring框架泛型依赖注入方法。在一些实施例中,所述存储器402可以包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需要的应用程序;数据存储区可存储spring框架泛型依赖注入方法的处理过程中所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件;在一些实施例中,存储器402可选包括相对于处理器401远程设置的远程存储器,这些远程存储器可以通过网络连接至执行域名过滤处理的计算机设备,前述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。在本发明实施例中,执行spring框架泛型依赖注入方法的计算机设备还可以包括输入装置403和输出装置4040;其中,输入装置403可获取用户在计算机设备上的操作信息,输出装置4040可包括显示屏等显示设备。在本发明实施例中,所述处理器401、存储器402、输入装置403和输出装置4040可以通过总线或者其他方式连接,图4中以通过总线连接为例。根据本发明实施例提供的计算机设备,通过处理器401执行存储器402中的代码时能够执行上述实施例中spring框架泛型依赖注入方法的步骤,且具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,能够实现如上所述的spring框架泛型依赖注入方法的步骤,当执行所述方法的步骤时,具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。本发明实施例还提供一种计算机程序产品,所述产品可执行本申请方法实施例中所提供的spring框架泛型依赖注入方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。需要说明的是,在本发明上述实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置可以是个人计算机,服务器,或者网络装置等或智能终端设备或处理器Processor执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器Read-OnlyMemory,ROM、随机存取存储器RandomAccessMemory,RAM、磁碟或者光盘等各种可以存储程序代码的介质。在本发明所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,两个或以上模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到两个或以上网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

权利要求:1.一种spring框架泛型依赖注入方法,其特征在于,包括:监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合;遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入。2.根据权利要求1所述的spring框架泛型依赖注入方法,其特征在于,所述方法还包括:当所述判断结果不存在对应于一个依赖对象的class文件,提示操作错误,重新请求新的操作路径,根据新的操作路径获取新的class文件,并判断每个新获取的class文件是否对应于一个依赖对象。3.根据权利要求1或2所述的spring框架泛型依赖注入方法,其特征在于,所述监听spring容器的启动过程的步骤包括:在所述spring容器启动的同时开启对所述spring容器的启动过程的监听;或者在所述spring容器启动的同时开始计时,当计时达到预设的时长时,开启对所述spring容器的启动过程的监听。4.根据权利要求1或2所述的spring框架泛型依赖注入方法,其特征在于,在所述根据所述class文件集合中的每个class文件生成bean对象的步骤之后还包括:生成各所述bean对象之间的依赖关系,将所述bean对象之间的依赖关系一并注入所述目标bean对象的属性中。5.根据权利要求1或2所述的spring框架泛型依赖注入方法,其特征在于,在所述spring容器启动之前,所述方法包括:配置所述目标bean对象的操作路径;其中,当配置有两条以上操作路径时,所述获取需要进行泛型依赖注入的目标bean对象的操作路径包括:获取配置的全部操作路径,或者根据获取指令中的配置信息从所述两条以上操作路径中获取至少一条操作路径。6.根据权利要求1或2所述的spring框架泛型依赖注入方法,其特征在于,所述根据所述class集合中的每个class文件生成bean对象包括:根据所述class集合中的每个class文件通过反射和动态代理的方式生成bean对象。7.根据权利要求1或2所述的spring框架泛型依赖注入方法,其特征在于,所述判断每个获取的class文件是否对应于一个依赖对象的步骤包括:根据类标识信息确定对应于类的class文件;根据依赖标识信息从所述对应于类的class文件中筛选对应于一个依赖对象的class文件。8.一种spring框架泛型依赖注入装置,其特征在于,包括:操作路径获取模块,用于监听spring容器的启动过程,在监测到spring容器启动结束后,获取需要进行泛型依赖注入的目标bean对象的操作路径;class文件集合获取模块,用于根据所述操作路径从对应的目标位置获取class文件,并判断每个获取的class文件是否对应于一个依赖对象,当判断结果存在对应于一个依赖对象的class文件时,收集对应于一个依赖对象的class文件形成class文件集合;泛型依赖注入模块,用于遍历所述class文件集合,根据所述class文件集合中的每个class文件生成bean对象,将生成的bean对象注入所述目标bean对象的属性中,实现泛型依赖注入。9.一种计算机设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至7中任一项所述的spring框架泛型依赖注入方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如权利要求1至7中任一项权利要求所述的spring框架泛型依赖注入方法的步骤。

百度查询: 平安科技(深圳)有限公司 spring框架泛型依赖注入方法、装置及计算机设备、存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。