一种基于Spring Boot在不同环境的数据源接入方法和装置制造方法及图纸

技术编号:20272549 阅读:19 留言:0更新日期:2019-02-02 03:40
本申请提供了一种基于Spring Boot在不同环境的数据源接入方法及装置,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。

【技术实现步骤摘要】
一种基于SpringBoot在不同环境的数据源接入方法和装置
本申请涉及数据库访问领域,尤其涉及一种基于SpringBoot在不同环境的数据源接入方法和装置。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库有多种类型,例如,简单存储有各种数据表格的数据库或存储海量数据的大型数据库系统。面向对象时,由于数据库在不同的环境下(如开发环境或测试环境),需要不同的数据源对其进行访问,因此,工作人员在切换数据库的环境时,需要对数据源进行切换。目前,现有技术多采用ORM(Object/RelationMapping,对象-关系映射)或JDBC(JavaDataBaseConnectivity,Java数据库连接)来访问数据库,但是,无论ORM还是JDBC均只配置一个数据源。工作人员要实现在不同环境下的数据库访问,就需通过硬编码的方式配置不同的数据源,从而导致工作人员配置的信息非常多,不仅增加开发量,还需花费很多时间和精力,并且实现不灵活。
技术实现思路
本申请提供了一种基于SpringBoot在不同环境的数据源接入方法及装置,以解决现有的ORM和JDBC均只配置一个数据源,工作人员要实现在不同环境下的数据库访问,就需通过硬编码的方式配置不同的数据源,从而导致工作人员配置的信息非常多,不仅增加开发量,还需花费很多时间和精力,并且实现不灵活。第一方面,本申请提供一种基于SpringBoot在不同环境的数据源接入方法,所述方法包括:加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源;根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。第二方面,本申请提供一种基于SpringBoot在不同环境的数据源接入装置,所述装置包括:加载配置文件模块,用于加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;加载数据访问对象配置组件模块,用于根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;加载mapper对象和数据源模块,利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;启动模块,用于根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;基类注入模块,用于在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;实现类继承模块,用于在所述service层的实现类继承所述基类,以获取所述父接口及父接口关联的数据源;获取模块,用于根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;访问模块,用于根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。由以上技术方案可知,本申请提供了一种基于SpringBoot在不同环境的数据源接入方法及装置,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。附图说明为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的一种基于SpringBoot在不同环境的数据源接入方法的流程图;图2为图1中步骤14的流程图;图3为图1中步骤18之后的流程图;图4为图1中步骤17的流程图;图5为本申请提供的一种基于SpringBoot在不同环境的数据源接入装置一实施例的结构示意图;图6为启动模块的结构示意图;图7为本申请提供的一种基于SpringBoot在不同环境的数据源接入装置另一实施例的结构示意图;图8为获取模块的结构示意图。具体实施方式由于本申请的
技术实现思路
涉及框架程序执行,因此,首先介绍实施例中的SpringBoot。SpringBoot是由Pivota团队提供的全新框架,该框架使用特定的方式(即starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot简化了Spring项目配置,使得jar依赖管理以及应用编译和部署更为简单。SpringBoot提供自动化配置,工作人员只需编写必要的代码和配置必须的属性即可。参见图1,本申请一实施例提供了一种基于SpringBoot在不同环境的数据源接入方法,包括如下步骤:步骤11:加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件。配置文件为SpringBoot的配置文件,即application配置文件,该配置文件中包括配置文件的类型、配置文件的环境变量和预设启动条件。其中,配置文件的类型是该配置文件所在的模块类型,例如,配置文件所在的模块类型为安全模块,则配置文件的类型为security;环境变量包括开发模式、测试模式和生产模式等;预设启动条件可由工作人员进行设置,用来启动所述配置文件对应的数据访问对象配置组件。配置文件可由工作人员根据不同的模块或不同的环境进行编辑,例如,配置文件为security-dao-${spring.profiles.active}.properties,其中,security为配置文件的类型,表示该配置文件是安全模块的配置类型;${spring.profiles.active}为占位符,SpringBoot将该占位符转化为环境变量。然后,工作人员可在配置文件中设定设置预设启动条件,用来启动相应的数据访问对象配置组件,例如:#指定profilespring.profile.active=dev#开启数本文档来自技高网
...

【技术保护点】
1.一种基于Spring Boot在不同环境的数据源接入方法,其特征在于,所述方法包括:加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源;根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。...

【技术特征摘要】
1.一种基于SpringBoot在不同环境的数据源接入方法,其特征在于,所述方法包括:加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源;根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。2.如权利要求1所述的方法,其特征在于,所述根据预设的启动条件,启动所述配置文件对应的数据访问对象配置组件包括:获取SpringBoot的启动类的启动注解;根据所述启动注解,获取启动所述配置文件对应的数据访问对象配置组件的条件注解;判断所述条件注解是否与所述预设启动条件相匹配,如果所述启动注解与所述配置文件中启动条件匹配,则启动所述配置文件对应的数据访问对象配置组件。3.如权利要求1所述的方法,其特征在于,所述访问所述父接口关联的数据源和所述mapper对象绑定的数据源连接的数据库之后还包括:获取所述service层的类的事务管理注解;根据所述事务管理注解,利用所述事务管理注解指定的事务处理器对象和与所述事务处理器对象绑定的数据源,对所述数据源连接的数据库进行数据库事务管理。4.如权利要求1所述的方法,其特征在于,所述父接口以java泛型注入所述service层的基类。5.如权利要求1所述的方法,其特征在于,所述根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源包括:根据所述service层的实现类的类型,查找与所述实现类的类型相匹配的mapper对象;将匹配成功的mapper对象注入对应的实现类,并获取所述mapper对象绑定的所有第一预设数据源。6.一种基于SpringB...

【专利技术属性】
技术研发人员:郑志刚
申请(专利权)人:北京神州泰岳软件股份有限公司
类型:发明
国别省市:北京,11

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

1