一种基于Redis变更程序数据源的方法和系统技术方案

技术编号:26222709 阅读:17 留言:0更新日期:2020-11-04 10:53
本发明专利技术提出了一种基于Redis变更程序数据源的方法和系统,该方法在程序启动时,将预设的第一数据源写入到由Redis组成的数据源池模块中;在程序运行时,获取注解信息,将注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;数据源切换模块用于读入第一数据源,并将程序所需的第二数据源从数据源池模块中取出,注入到程序相应的线程中。基于该方法,还提出了变更程序数据源的系统、处理设备和存储介质。本发明专利技术利用Redis对应用程序多数据源进行数据源管理,并根据程序指定数据源进行相应的变更。方便开发人员动态修改程序数据源设置,可以在程序运行时动态调整数据源配置,对运行的程序起到实时修改的效果。

【技术实现步骤摘要】
一种基于Redis变更程序数据源的方法和系统
本专利技术软件开发
,特别涉及一种基于Redis变更程序数据源的方法和系统。
技术介绍
为提高应用程序对数据源访问的效率,一般在应用程序进行读写分离的操作,这就要求为应用程序提供不同的数据源,动态切换数据源。对于多数据源的应用程序,更需要准确的变更为相应的数据源上,进行数据库的操作。对于运行的中的程序,需要修改数据源信息,就需要停止应用程序,重新配置数据源,影响应用系统的正常工作。应用程序一般只能在内存中存储数据源,无法将数据源共享给其他应用程序使用。现有的技术方案是将数据源配置到系统文件中,通过配置文件管理数据源,在程序初始化时,将数据源配置读入到应用程序中。在应用程序运行时,通过使用配置文件管理的数据源进行数据的查询等操作。一般一个应用程序配置一个数据源配置。如图1给出的现有技术实现的方法示意图。现有的技术缺点是数据源是通过配置文件进行管理的,一般是单数据源,如果需要增加新数据源,或者需要变更数据源,需要对程序代码进行修改,加大了代码维护成本;如果程序在运行中,需要重启程序,影响了程序的正常运行。现有技术中的数据源只能在本应用系统内使用,无法将数据源共享给其他应用程序使用,禁锢了程序访问数据的多元性。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种基于Redis变更程序数据源的方法和系统,可以在程序运行时动态调整数据源配置,对运行的程序起到实时修改的效果。为实现上述目的,本专利技术采用以下技术方案:1、一种基于Redis变更程序数据源的方法,包括以下步骤:将预设的第一数据源写入到由Redis组成的数据源池模块中;获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;所述数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。进一步的,所述注解信息支持实时更新。进一步的,所述数据源池模块中还包括在程序运行时更新的数据源配置文件。进一步的,所述获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件注入到数据源切换模块包括:获取注解信息,根据所述注解信息执行的第二数据源的名称通过Spring的AOP组件注入到数据源切换模块。进一步的,所述Spring框架根据所述注解信息注册成的切点,在程序线程执行之前,通过数据源切换模块,从Redis中读入注解信息指定的第二数据源;所述数据源切换模块将程序所需第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。进一步的,所述第一数据源包括本地Redis维护的数据源和共享Redis维护的数据源。一种基于Redis变更程序数据源的系统,包括写入单元和变更单元;所述写入单元用于将预设的第一数据源写入到由Redis组成的数据源池模块中;所述变更单元用于获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;所述数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。一种基于Redis变更程序数据源的处理设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1或6所述一种基于Redis变更程序数据源的方法步骤。一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1或6所述一种基于Redis变更程序数据源的方法步骤。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:本专利技术提出了一种基于Redis变更程序数据源的方法和系统,该方法在程序启动时,将预设的第一数据源写入到由Redis组成的数据源池模块中;在程序运行时,获取注解信息,将注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。本专利技术中注解信息支持实时更新。基于本专利技术提出的一种基于Redis变更程序数据源的方法,还提出了一种基于Redis变更程序数据源的系统、一种基于Redis变更程序数据源的处理设备和存储介质。本专利技术利用Redis对应用程序多数据源进行数据源管理,并根据程序指定数据源进行相应的变更。方便开发人员动态修改程序数据源设置,可以在程序运行时动态调整数据源配置,对运行的程序起到实时修改的效果。本专利技术依托Redis存储管理,可以将数据源信息共享给其他可以信任的程序使用,减少了程序代码数据源的维护成本。附图说明如图1为现有技术中现有技术实现的方法示意图;如图2为本专利技术实施例1一种基于Redis变更程序数据源的方法流程图;如图3为本专利技术实施例1将预设的数据源,写入到由Redis组成的数据源池中程序实现方法;如图4为本专利技术实施例1中注解模块采用方法块实现的示意图;如图5为本专利技术实施例1注册切点示意图;如图6为本专利技术实施例1获取注解信息示意图;如图7为本专利技术实施例1变更数据源示意图;如图8为本专利技术实施例1一种基于Redis变更程序数据源的系统结构示意图。具体实施方式为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。实施例1本专利技术实施例1提出了一种基于Redis变更程序数据源的方法,利用Redis对应用程序多数据源进行数据源管理,并根据程序指定数据源进行相应的变更。如图2给出了本专利技术实施例1一种基于Redis变更程序数据源的方法流程图。首先,程序启动,程序启动时将预设的第一数据源,写入到由Redis组成的数据源池中;程序运行时也可以实时更新数据源配置到Redis数据源池中,该过程可以设置多种数据源。如图3为本专利技术实施例1将预设的数据源,写入到由Redis组成的数据源池中程序实现方法。第一数据源包括本地Redis维护的数据源和共享其他应用程序中Redis维护的数据源。然后,程序运行过程中,需要数据源进行数据查询时,根据注解模块中设置的第二数据源,将第二数据源的名称通过Spring的AOP组件注入到数据源切换模块;其中注解模块可以为方法块,也可以为程序。如图4为本专利技术实施本文档来自技高网
...

【技术保护点】
1.一种基于Redis变更程序数据源的方法,其特征在于,包括以下步骤:/n将预设的第一数据源写入到由Redis组成的数据源池模块中;/n获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;所述数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。/n

【技术特征摘要】
1.一种基于Redis变更程序数据源的方法,其特征在于,包括以下步骤:
将预设的第一数据源写入到由Redis组成的数据源池模块中;
获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件存入到数据源切换模块;所述数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。


2.根据权利要求1所述的一种基于Redis变更程序数据源的方法,其特征在于,所述注解信息支持实时更新。


3.根据权利要求1所述的一种基于Redis变更程序数据源的方法,其特征在于,所述数据源池模块中还包括在程序运行时更新的数据源配置文件。


4.根据权利要求1所述的一种基于Redis变更程序数据源的方法,其特征在于,所述获取注解信息,将所述注解信息指定的第二数据源通过Spring的组件注入到数据源切换模块包括:
获取注解信息,根据所述注解信息执行的第二数据源的名称通过Spring的AOP组件注入到数据源切换模块。


5.根据权利要求4所述的一种基于Redis变更程序数据源的方法,其特征在于,所述Spring框架根据所述注解信息注册成的切点,在程序线程执行之前,通过数据源切换模块,从R...

【专利技术属性】
技术研发人员:崔广银邓淮谦
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1