本发明专利技术公开一种数据库读写分离方法,包括:拦截并解析业务请求,确定业务请求中是否存在注解部分;当业务请求中存在注解时,对注解进行分析;依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。本发明专利技术还公开一种数据库读写分离装置,利用本发明专利技术,无需重新编辑配置文件,只需直接修改注解即可链接不同的数据库进行读操作或写操作。
【技术实现步骤摘要】
本专利技术涉及数据库的读写技术,具体涉及一种数据库读写分离方法及装置。
技术介绍
随着企业机制的越发完善,企业应用系统中的数据量也随之增多。这些应用系统在为企业带来收益的同时,也令数据库的读写次数越来越多。分离数据库的读操作和写操作是解决数据库读写压力的方式之一。目前,分离数据库读写操作通常的实现方法是:统一配置可扩展性标记语言(XML,Extensible Markup Language)文件,将数据库业务对应的类、执行类的方法、类的属性等内容写入XML文件;当数据库执行某个业务时,guzz(Java框架之一)容器读取与该业务相关的XML文件,根据XML文件记录的配置信息,应用系统将读操作和写操作分配到不同的数据库中。因XML文件提供了一种简洁的自解释标记方法,几乎不需要说明文档,就能理解XML格式的配置文件的意义,故大多数的业务应用都能够处理XML文件;可见,采用XML文件作为数据库读写操作中的配置文件正是发挥了它的通用性强、扩展性好等特点。但是,在结构上,XML文件需采用独立的配置文件,大多数的配置信息在应用系统开发完成后都不会进行再调整;而在应用系统的某个功能运行时,需要不停地在业务文件和配置文件之间进行切换,这就使得应用进程缓慢;况且在改变功能时,需重新编辑配置文件、导致应用系统的开发不灵活、开发周期加长。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种数据库读写分离方法及装置,<br>能增强配置文件修改的灵活性,缩短开发周期。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供了一种数据库读写分离方法,该方法包括:拦截并解析业务请求,确定业务请求中是否存在注解部分;当业务请求中存在注解时,对注解进行分析;依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。上述方案中,所述拦截并解析业务请求为:利用面向切面编程AOP拦截所有业务请求,通过获取注解函数获取注解。上述方案中,所述当业务请求中存在注解时,对注解进行分析为:当业务请求中存在注解部分时,利用参数语句读取注解返回值参数;依据返回值参数,利用Spring的反射机制查找注解说明的方法。上述方案中,所述依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作为:依据注解说明的方法,建立业务请求与对应的数据库之间的链接,在对应的数据库中进行指定次数的读操作或写操作。本专利技术还提供了一种数据库读写分离装置,该装置包括拦截解析模块、注解分析模块和业务请求处理模块;其中,所述拦截解析模块,用于拦截并解析业务请求,确定业务请求中是否存在注解部分;所述注解分析模块,用于当业务请求中存在注解时,对注解进行分析;所述业务请求处理模块,用于依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。上述方案中,所述拦截解析模块,具体用于利用AOP功能拦截所有的业务请求,并利用获取注解函数获取注解,根据获取注解函数返回值确定当前业务请求中是否存在注解部分,所述返回值为非空时,确定当前业务请求中存在注解部分,将注解部分发送给所述注解分析模块。上述方案中,所述注解分析模块,具体用于当业务请求中存在注解部分时,利用参数语句读取注解返回值参数;依据返回值参数,再利用Spring的反射机制查找注解说明的方法。上述方案中,所述业务请求处理模块,具体用于依据注解说明的方法,建立业务请求与对应的数据库之间的链接,并在对应的数据库中进行指定次数的读操作或写操作。本专利技术提供的数据库读写分离方法及装置,将配置文件以注解的形式存在于业务文件中,当需要修改配置文件时,无需重新编辑配置文件,只需直接修改注解,即可解决在传统的应用系统使用某个数据库时,该数据库只能进行单一读操作、或写操作的问题。如此,不仅能增强配置文件修改的灵活性,而且能缩短开发周期。附图说明图1为本专利技术的数据库读写分离方法的流程示意图;图2为本专利技术的数据库读写分离装置的结构组成示意图。具体实施方式本专利技术提供的一种数据库读写分离方法,如图1所示,该方法包括:步骤11:拦截并解析业务请求,确定业务请求中是否存在注解部分;具体的,本步骤为:在实际应用中,先加载应用环境,然后在应用环境中加入所需的数据包,在Spring(应用程序框架之一)文件中打开面向切面编程(AOP,Aspect Oriented Programming)的功能;所述AOP拦截所有的业务请求,并利用获取注解(GetAnnotation)函数逐一判断当前的业务请求中是否存在注解部分;当所述GetAnnotation的返回值为非空时,表明当前的业务请求存在有注解部分,则继续进行步骤12;当所述GetAnnotation的返回值为空时,表明当前的业务请求中没有存在注解部分,继续执行业务文件,本流程结束。步骤12:当业务请求中存在注解时,对注解进行分析;具体的,本步骤为:当业务请求中存在注解部分时,利用参数(Parameters)语句读取注解返回值参数;然后依据返回值参数,利用Spring的反射机制invoke查找注解说明的方法,这里,所述注解说明的方法是预先设置的,该注解说明方法中说明了业务请求链接的指定数据库、在所述指定数据库中进行读操作还是写操作、以及读操作或写操作的次数等内容。步骤13:依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。具体的,本步骤为:依据各自的注解说明的方法,存在有注解的业务请求将调用应用系统中的连接池(pool),与所述业务请求各自对应的数据库进行链接;然后,在各自链接到的数据库中进行指定次数的读操作或写操作;其中,所述的pool用于建立业务请求与数据库之间的数据链接、数据传输等。为实现上述方法,本专利技术还提供了一种数据读写分离装置,如图2所示,所述装置包括拦截解析模块20、注解分析模块21、以及业务请求处理模块22;其中,所述拦截解析模块20,用于拦截并解析业务请求,确定业务请求中是否存在注解部分;所述注解分析模块21,用于当业务请求中存在注解时,对注解进行分析;所述业务请求处理模块22,用于依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。具体的,所述拦截解析模块20,在Spring文件中打开AOP功能,利用所述AOP功能拦截所有的业务请求,并利用GetAnnotation函数获取注解,本文档来自技高网...
【技术保护点】
一种数据库读写分离方法,其特征在于,该方法包括:拦截并解析业务请求,确定业务请求中是否存在注解部分;当业务请求中存在注解时,对注解进行分析;依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作。
【技术特征摘要】
1.一种数据库读写分离方法,其特征在于,该方法包括:
拦截并解析业务请求,确定业务请求中是否存在注解部分;
当业务请求中存在注解时,对注解进行分析;
依据对注解的分析结果,将所述业务请求链接到对应的数据库进行读操作
或写操作。
2.根据权利要求1所述的数据库读写分离方法,其特征在于,所述拦截并
解析业务请求为:利用面向切面编程AOP拦截所有业务请求,通过获取注解函
数获取注解。
3.根据权利要求1或2所述的数据库读写分离方法,其特征在于,所述当
业务请求中存在注解时,对注解进行分析为:
当业务请求中存在注解部分时,利用参数语句读取注解返回值参数;
依据返回值参数,利用Spring的反射机制查找注解说明的方法。
4.根据权利要求3所述的数据库读写分离方法,其特征在于,所述依据对
注解的分析结果,将所述业务请求链接到对应的数据库进行读操作或写操作为:
依据注解说明的方法,建立业务请求与对应的数据库之间的链接,在对应
的数据库中进行指定次数的读操作或写操作。
5.一种数据库读写分离装置,其特征在于,该装置包括拦截解析模块、注
解分析模块和业务请求处理模块;其中,...
【专利技术属性】
技术研发人员:付章华,仇大帅,祝明远,
申请(专利权)人:深圳中兴网信科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。