一种基于Redis变更程序数据源的方法和系统与流程

文档序号:22796211发布日期:2020-11-04 03:48阅读:158来源:国知局
一种基于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中注解模块采用方法块实现的示意图。

注解模块在系统运行时都会在spring“监控”下。运行程序块时首先获取注解信息。程序中使用注解模块声明的第二数据源,spring框架根据注解信息注册成的切点,如图5为本发明实施例1注册切点示意图。如图6为本发明实施例1获取注解信息示意图;

在程序线程执行之前,通过数据源切换模块,从redis中读入注解信息指定的第二数据源;数据源切换模块将程序所需第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。如图7为本发明实施例1变更数据源示意图。

最后,程序线程获取到由redis提供的数据源后,再进行相应的数据库查询等操作。整个过程中对于线程来说数据源的获取是透明的,数据源可以是本地redis维护的数据源,也可是共享其他应用程序中redis维护的数据源

基于本发明提出的一种基于redis变更程序数据源的方法,还提出了基于redis变更程序数据源的系统,如图8为本发明实施例1一种基于redis变更程序数据源的系统结构示意图,该系统包括写入单元和变更单元;

写入单元用于将预设的第一数据源写入到由redis组成的数据源池模块中;

变更单元用于获取注解信息,将注解信息指定的第二数据源通过spring的组件存入到数据源切换模块;数据源切换模块用于读入位于数据源池模块中的第一数据源,并将程序所需的第二数据源从数据源池模块中取出,并将第二数据源注入到程序相应的线程中。

本发明还提出了一种基于redis变更程序数据源的处理设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现一种基于redis变更程序数据源的方法步骤。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如一种基于redis变更程序数据源的方法步骤。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1