一种动态切换应用程序数据源的方法及系统的制作方法_2

文档序号:9274599阅读:来源:国知局
[0047]切换点注入,采用java反射机制,找出该注入点对应的类名及方法名,在调用该方法时切换到需要操作的数据源,然后再继续执行该方法,以达到切换操作数据库的目的。
[0048]数据源切换,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法determineCurrentLookupKey O,指定参数,便可路由到想要操作的数据库。
[0049]该发明中为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,是单独通用的功能模块,可移植到其他第三方应用程序中,其他应用程序只需连接上连接池,配置好对应切换点,即可动态切换数据源的功能。
[0050]如图3所示,本发明提供一种动态切换应用程序数据源的系统,包括:
[0051]配置数据源模块,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;
[0052]数据库连接模块,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
[0053]切换点设置模块,在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
[0054]当应用程序调用切换点设置模块中的所述功能模块时,根据功能模块对应配置数据源模块的数据源信息,向数据库连接模块的连接池请求数据源,切换连接到相应的数据源。
[0055]功能模块是需要切换数据源的方法或者配置文件中配置需要切换数据源的类。
[0056]在应用程序使用中,可能需要再增加会删除数据库,系统还可以包括:
[0057]数据源添加删除模块,用于增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;减少一数据数据源时,用于关掉相应线程。
[0058]数据库连接模块中为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,数据库连接模块是单独通用的功能模块,可移植到其他第三方应用程序中。
[0059]实施例二:
[0060]本实施例与实施例一基本相同,具体介绍应用程序操作多个不同的数据源的方法。
[0061]在spring的配置文件配置多个不同数据源A、B…N,配置信息包括多个不同数据源所在服务器IP地址、数据源标识、用户名、密码等信息,如图1所示,为多个数据源建立连接池,为每个数据源建立一个连接池的独立线程,为数据源A建立线程A,数据源B建立线程B…数据源N建立线程N,单个线程操作单个数据源,在应用程序存在需要切换数据源的多个方法,方法A、方法B…方法N,在多个方法中中加入切换点A、切换点B…切换点N,切换点A对应数据源A,切换点B对应数据源B…切换点N对应数据源N,也可以存在两个以上方法中的切换点对应一相同数据源。
[0062]程序运行中,通过线程A连接到数据源A,当应用程序调用方法B时,根据切换点B对应配置项中的数据源B的信息,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法 determineCurrentLookupKey O,指定参数,通过线程B切换到切换点B对应的数据源B。
[0063]当应用程序调用方法N时,根据切换点N对应配置项中的数据源N的信息,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法determineCurrentLookupKey O,指定参数,通过线程N切换到切换点N对应的数据源N。
[0064]通过在方法A、方法B…方法N中加入切换点A、切换点B…切换点N,切换点A、切换点B…切换点N对应数据源A、数据源B…数据源N,当应用程序调用不同方法时,通过不同的线程,连接到不同的数据源,实现动态切换应用程序数据源。
[0065]由于存在两个以上方法中的切换点对应一相同数据源情况,也可以在配置文件中配置需要切换数据源的类加以监听,以实现动态切换应用程序数据源。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种动态切换应用程序数据源的方法,其特征在于,包括: 在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项; 为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源; 在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;当应用程序调用所述功能模块时,根据所述切换点对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。2.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于, 增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程; 减少一数据数据源时,关掉相应线程。3.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于, 所述功能模块是需要切换数据源的方法。4.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于, 所述功能模块是配置文件中配置需要切换数据源的类。5.一种动态切换应用程序数据源的系统,其特征在于,包括: 配置数据源模块,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项; 数据库连接模块,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源; 切换点设置模块,在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源; 当应用程序调用切换点设置模块中的所述功能模块时,根据功能模块的所述切换点对应配置数据源模块的数据源信息,向数据库连接模块的连接池请求数据源,切换连接到相应的数据源。6.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于,还包括: 数据源添加删除模块,用于增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;减少一数据数据源时,用于关掉相应线程。7.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于, 所述功能模块是需要切换数据源的方法。8.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于, 所述功能模块是配置文件中配置需要切换数据源的类。
【专利摘要】本发明提供一种动态切换应用程序数据源的方法及系统,包括:在应用程序中配置多个数据源信息,启动应用程序时,加载配置项;为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;在应用程序需要切换数据源的功能模块中加入切换点;当应用程序调用所述功能模块时,根据功能模块对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。通过为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,解决了用户访问过多造成的连接争抢问题。
【IPC分类】G06F9/48, G06F9/50
【公开号】CN104991824
【申请号】CN201510469431
【发明人】邱光明
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年10月21日
【申请日】2015年8月3日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1