CN109299172B - 一种基于Spring Boot在不同环境的数据源接入方法和装置 - Google Patents

一种基于Spring Boot在不同环境的数据源接入方法和装置 Download PDF

Info

Publication number
CN109299172B
CN109299172B CN201810978307.7A CN201810978307A CN109299172B CN 109299172 B CN109299172 B CN 109299172B CN 201810978307 A CN201810978307 A CN 201810978307A CN 109299172 B CN109299172 B CN 109299172B
Authority
CN
China
Prior art keywords
configuration file
service layer
class
preset
mapper
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810978307.7A
Other languages
English (en)
Other versions
CN109299172A (zh
Inventor
郑志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Science and Technology (Beijing) Co., Ltd.
Original Assignee
Dingfu Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dingfu Intelligent Technology Co Ltd filed Critical Dingfu Intelligent Technology Co Ltd
Priority to CN201810978307.7A priority Critical patent/CN109299172B/zh
Publication of CN109299172A publication Critical patent/CN109299172A/zh
Application granted granted Critical
Publication of CN109299172B publication Critical patent/CN109299172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种基于Spring Boot在不同环境的数据源接入方法和装置
技术领域
本申请涉及数据库访问领域,尤其涉及一种基于Spring Boot在不同环境的数据源接入方法和装置。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库有多种类型,例如,简单存储有各种数据表格的数据库或存储海量数据的大型数据库系统。面向对象时,由于数据库在不同的环境下(如开发环境或测试环境),需要不同的数据源对其进行访问,因此,工作人员在切换数据库的环境时,需要对数据源进行切换。
目前,现有技术多采用ORM(Object/Relation Mapping,对象-关系映射)或JDBC(Java Data Base Connectivity,Java数据库连接)来访问数据库,但是,无论ORM还是JDBC均只配置一个数据源。工作人员要实现在不同环境下的数据库访问,就需通过硬编码的方式配置不同的数据源,从而导致工作人员配置的信息非常多,不仅增加开发量,还需花费很多时间和精力,并且实现不灵活。
发明内容
本申请提供了一种基于Spring Boot在不同环境的数据源接入方法及装置,以解决现有的ORM和JDBC均只配置一个数据源,工作人员要实现在不同环境下的数据库访问,就需通过硬编码的方式配置不同的数据源,从而导致工作人员配置的信息非常多,不仅增加开发量,还需花费很多时间和精力,并且实现不灵活。
第一方面,本申请提供一种基于Spring Boot在不同环境的数据源接入方法,所述方法包括:
加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;
根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;
利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;
根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;
在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;
在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源;
根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;
根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
第二方面,本申请提供一种基于Spring Boot在不同环境的数据源接入装置,所述装置包括:
加载配置文件模块,用于加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;
加载数据访问对象配置组件模块,用于根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;
加载mapper对象和数据源模块,利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;
启动模块,用于根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;
基类注入模块,用于在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;
实现类继承模块,用于在所述service层的实现类继承所述基类,以获取所述父接口及父接口关联的数据源;
获取模块,用于根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;
访问模块,用于根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
由以上技术方案可知,本申请提供了一种基于Spring Boot在不同环境的数据源接入方法及装置,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种基于Spring Boot在不同环境的数据源接入方法的流程图;
图2为图1中步骤14的流程图;
图3为图1中步骤18之后的流程图;
图4为图1中步骤17的流程图;
图5为本申请提供的一种基于Spring Boot在不同环境的数据源接入装置一实施例的结构示意图;
图6为启动模块的结构示意图;
图7为本申请提供的一种基于Spring Boot在不同环境的数据源接入装置另一实施例的结构示意图;
图8为获取模块的结构示意图。
具体实施方式
由于本申请的发明内容涉及框架程序执行,因此,首先介绍实施例中的SpringBoot。Spring Boot是由Pivota团队提供的全新框架,该框架使用特定的方式(即starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot简化了Spring项目配置,使得jar依赖管理以及应用编译和部署更为简单。Spring Boot提供自动化配置,工作人员只需编写必要的代码和配置必须的属性即可。
参见图1,本申请一实施例提供了一种基于Spring Boot在不同环境的数据源接入方法,包括如下步骤:
步骤11:加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件。
配置文件为Spring Boot的配置文件,即application配置文件,该配置文件中包括配置文件的类型、配置文件的环境变量和预设启动条件。其中,配置文件的类型是该配置文件所在的模块类型,例如,配置文件所在的模块类型为安全模块,则配置文件的类型为security;环境变量包括开发模式、测试模式和生产模式等;预设启动条件可由工作人员进行设置,用来启动所述配置文件对应的数据访问对象配置组件。
配置文件可由工作人员根据不同的模块或不同的环境进行编辑,例如,配置文件为security-dao-${spring.profiles.active}.properties,其中,security为配置文件的类型,表示该配置文件是安全模块的配置类型;${spring.profiles.active}为占位符,Spring Boot将该占位符转化为环境变量。然后,工作人员可在配置文件中设定设置预设启动条件,用来启动相应的数据访问对象配置组件,例如:
#指定profile
spring.profile.active=dev
#开启数据访问对象配置组件条件
config.dao.enabled.security=true
步骤12:根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件。
数据访问对象(DAO)配置组件描述了如何创建透明访问数据源的对象,管理与数据源的连接,以便检索和存储数据。数据访问对象配置组件实现了用来操作数据源的访问机制。数据访问对象配置组件完全向客户端隐藏了数据源实现细节。工作人员可根据具体的业务需要,编写数据访问对象配置组件中的动态参数即可。
Spring Boot可根据配置文件的类型和所述配置文件的环境变量自动加载与配置文件对应的数据访问对象配置组件。
步骤13:利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源。
包是把功能相似或相关的类或接口组织在一起,方便查找和使用。类是相同数据和相同的一组对象的集合,即类是对具有相同数据结构和相同操作的一类对象的描述。对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
数据源是指证据的来源,在数据源中存储了所有建立数据库连接的信息,即通过数据源可以找到相应的数据库连接信息,以便访问该数据库。工作人员根据实际业务操作和环境的不同,将mapper对象绑定访问所需数据库的数据源,即第一预设数据源。
利用mapper包的预设包路径,调取每个预设包路径指定的mapper对象和mapper对象绑定的数据源。工作人员根据实际需求,可设置不同的mapper对象可绑定不同的数据源。
步骤14:根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件。
步骤15:在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源。
service层用来实现数据访问对象配置组件的调用,即service层调用数据访问对象配置组件,然后由数据访问对象配置组件完成数据库的操作。基类注入的父接口中定义基本的保存、删除、更新、查询和复杂查询函数接口,即可通过第二预设数据源访问第二预设数据源连接的数据库,进行保存、删除、更新、查询和复杂查询函数的操作。工作人员根据实际需求,将父接口关联至少一个第二预设数据源。
优选地,父接口以java泛型注入所述service层的基类。java泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。java泛型可在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。
步骤16:在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源。
实现类为基类的派生类,其可通过继承来吸收基类的数据属性和行为,并根据自己的类别扩展新的能力。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
service层的实现类继承了基类的父接口,即继承了保存、删除、更新、查询和复杂查询函数的操作,即并在此基础上可扩展其新的能力,例如数据插入等。
步骤17:根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源。
步骤18:根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
由以上技术方案可知,本申请提供了一种基于Spring Boot在不同环境的数据源接入方法,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。
参见图2,在本申请的另一实施例中,步骤14包括如下步骤:
步骤21:获取Spring Boot的启动类的启动注解。
Spring Boot在默认的情况下,除缺省的数据访问对象配置组件外,其他的数据访问对象配置组件均不启动。工作人员如果要启动特定的数据访问对象配置组件,则需要进行配置。例如,工作人员要启动SecurityDao,在Spring Boot的启动类中对@SpringBootApplication注解设置exclude={DataSourceAutoConfiguration.class}。
步骤22:根据所述启动注解,获取启动所述配置文件对应的数据访问对象配置组件的条件注解。
继续以上例为例,SecurityDao的条件注解为:@Conditional(SecurityDaoEnabled.class)。
步骤23:判断所述条件注解是否与所述预设启动条件相匹配,如果所述启动注解与所述配置文件中启动条件匹配,则执行步骤23。
步骤24:启动所述配置文件对应的数据访问对象配置组件。
Spring Boot根据配置文件中如下的开启条件自动与条件注解进行匹配,如果匹配成功,则启动SecurityDao。
#指定profile
spring.profile.active=dev
#开启数据访问对象配置组件条件
config.dao.enabled.security=true
由以上方案可知,本实施例可自定义启动特定的数据访问对象配置组件,工作人员可通过动态设置,来实现特定的数据访问对象配置组件的启动,以提高使用的灵活性。
参见图3,在本申请的又一实施例中,步骤18之后还包括:
步骤31:获取所述service层的类的事务管理注解。
步骤32:根据所述事务管理注解,利用所述事务管理注解指定的事务处理器对象和与所述事务处理器对象绑定的数据源,对所述数据源连接的数据库进行数据库事务管理。
Spring Boot提供多种事务管理器,不同的数据库由不同的事务管理器进行数据库事务管理。当工作人员需要使用事务管理时,在类上加上事务管理注解,如,@Transactional("securityTransactionManager"),然后类就会使用事务管理注解指定的事务处理器对象(如securityTransactionManager)和与其绑定的数据源,对相应的数据库进行数据库事务管理。
参见图4,在本申请的又一实施例中,步骤17还包括如下步骤:
步骤41:根据所述service层的实现类的类型,查找与所述实现类的类型相匹配的mapper对象。
步骤42:将匹配成功的mapper对象注入对应的实现类,并获取所述mapper对象绑定的所有第一预设数据源。
工作人员需根据不同的mapper对象,预先设置与其相对应的实现类,以实现对不同的mapper对象的调用。service层在调用mapper对象时,根据实现类的类型查找与其相匹配的mapper对象,然后将匹配成功的mapper对象注入对应的实现类中,并获取其绑定的第一预设数据源。
第二方面,参见图5,本申请提供了一种基于Spring Boot在不同环境的数据源接入装置,所述装置包括:
加载配置文件模块51,用于加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;
加载数据访问对象配置组件模块52,用于根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;
加载mapper对象和数据源模块53,利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;
启动模块54,用于根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;
基类注入模块55,用于在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;
实现类继承模块56,用于在所述service层的实现类继承所述基类,以获取所述父接口及父接口关联的数据源;
获取模块57,用于根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;
访问模块58,用于根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
由以上技术方案可知,本申请提供了一种基于Spring Boot在不同环境的数据源接入方法,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。
进一步地,参见图6,所述启动模块54包括:
启动注解获取单元61,用于获取Spring Boot的启动类的启动注解;
条件注解获取单元62,用于根据所述启动注解,获取启动所述配置文件对应的数据访问对象配置组件的条件注解;
判断单元63,用于判断所述条件注解是否与所述预设启动条件相匹配,如果所述启动注解与所述配置文件中启动条件匹配,则启动所述配置文件对应的数据访问对象配置组件。
进一步地,参见图7,所述装置还包括:
事务管理注解模块71,用于获取所述service层的类的事务管理注解;
数据库事务管理模块72,用于根据所述事务管理注解,利用所述事务管理注解指定的事务处理器对象和与所述事务处理器对象绑定的数据源,对所述数据源连接的数据库进行数据库事务管理。
优选地,所述父接口以java泛型注入所述service层的基类。
进一步地,参见图8,所述获取模块57包括:
查找单元81,用于根据所述service层的实现类的类型,查找与所述实现类的类型相匹配的mapper对象;
获取单元82,用于将匹配成功的mapper对象注入对应的实现类,并获取所述mapper对象绑定的所有第一预设数据源。
由以上技术方案可知,本申请提供了一种基于Spring Boot在不同环境的数据源接入方法及装置,根据配置文件的类型和环境变量,加载并启动与其相对应的数据访问对象配置组件,然后利用service层的基类和实现类,获取所需的数据源,进而可以访问该数据源连接的数据库。因此,工作人员只需修改配置文件的类型和环境变量,以及预先存储好数据访问对象配置组件,无需工作人员通过硬编码的方式重新配置新的数据源,大大降低工作人员的工作量,提高工作效率,并且提高数据源接入的灵活性。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者或对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以似的一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种基于Spring Boot在不同环境的数据源接入方法,其特征在于,所述方法包括:
加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;其中,所述配置文件的类型为所述配置文件所在的模块类型;所述环境变量包括开发模式、测试模式和生产模式,所述环境变量是由Spring Boot根据所述配置文件中的占位符转换得到;
根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;
利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;
根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;
在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;
在所述service层的实现类继承所述基类的父接口,并获取所有第二预设数据源;
根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;
根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
2.如权利要求1所述的方法,其特征在于,所述根据预设的启动条件,启动所述配置文件对应的数据访问对象配置组件包括:
获取Spring Boot的启动类的启动注解;
根据所述启动注解,获取启动所述配置文件对应的数据访问对象配置组件的条件注解;
判断所述条件注解是否与所述预设启动条件相匹配,如果所述启动注解与所述配置文件中启动条件匹配,则启动所述配置文件对应的数据访问对象配置组件。
3.如权利要求1所述的方法,其特征在于,所述访问所述父接口关联的数据源和所述mapper对象绑定的数据源连接的数据库之后还包括:
获取所述service层的类的事务管理注解;
根据所述事务管理注解,利用所述事务管理注解指定的事务处理器对象和与所述事务处理器对象绑定的数据源,对所述数据源连接的数据库进行数据库事务管理。
4.如权利要求1所述的方法,其特征在于,所述父接口以java泛型注入所述service层的基类。
5.如权利要求1所述的方法,其特征在于,所述根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源包括:
根据所述service层的实现类的类型,查找与所述实现类的类型相匹配的mapper对象;
将匹配成功的mapper对象注入对应的实现类,并获取所述mapper对象绑定的所有第一预设数据源。
6.一种基于Spring Boot在不同环境的数据源接入装置,其特征在于,所述装置包括:
加载配置文件模块,用于加载配置文件,所述配置文件包括所述配置文件的类型、所述配置文件的环境变量和预设启动条件;其中,所述配置文件的类型为所述配置文件所在的模块类型;所述环境变量包括开发模式、测试模式和生产模式,所述环境变量是由SpringBoot根据所述配置文件中的占位符转换得到;
加载数据访问对象配置组件模块,用于根据所述配置文件的类型和所述配置文件的环境变量,加载与所述配置文件对应的数据访问对象配置组件;
加载mapper对象和数据源模块,利用所述数据访问对象配置组件中的mapper包的至少一个预设包路径,加载每个所述包路径指定的mapper对象,每个所述mapper对象绑定至少一个第一预设数据源;
启动模块,用于根据所述预设启动条件,启动所述配置文件对应的数据访问对象配置组件;
基类注入模块,用于在service层的基类中注入父接口,所述父接口关联至少一个第二预设数据源;
实现类继承模块,用于在所述service层的实现类继承所述基类,以获取所述父接口及父接口关联的数据源;
获取模块,用于根据所述service层的实现类和mapper对象,获取与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源;
访问模块,用于根据与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源,访问所述与所述service层的实现类相匹配的mapper对象所绑定的所有第一预设数据源和所有第二预设数据源连接的数据库。
7.如权利要求6所述的装置,其特征在于,所述启动模块包括:
启动注解获取单元,用于获取Spring Boot的启动类的启动注解;
条件注解获取单元,用于根据所述启动注解,获取启动所述配置文件对应的数据访问对象配置组件的条件注解;
判断单元,用于判断所述条件注解是否与所述预设启动条件相匹配,如果所述启动注解与所述配置文件中启动条件匹配,则启动所述配置文件对应的数据访问对象配置组件。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
事务管理注解模块,用于获取所述service层的类的事务管理注解;
数据库事务管理模块,用于根据所述事务管理注解,利用所述事务管理注解指定的事务处理器对象和与所述事务处理器对象绑定的数据源,对所述数据源连接的数据库进行数据库事务管理。
9.如权利要求6所述的装置,其特征在于,所述父接口以java泛型注入所述service层的基类。
10.如权利要求6所述的装置,其特征在于,所述获取模块包括
查找单元,用于根据所述service层的实现类的类型,查找与所述实现类的类型相匹配的mapper对象;
获取单元,用于将匹配成功的mapper对象注入对应的实现类,并获取所述mapper对象绑定的所有第一预设数据源。
CN201810978307.7A 2018-08-27 2018-08-27 一种基于Spring Boot在不同环境的数据源接入方法和装置 Active CN109299172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810978307.7A CN109299172B (zh) 2018-08-27 2018-08-27 一种基于Spring Boot在不同环境的数据源接入方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810978307.7A CN109299172B (zh) 2018-08-27 2018-08-27 一种基于Spring Boot在不同环境的数据源接入方法和装置

Publications (2)

Publication Number Publication Date
CN109299172A CN109299172A (zh) 2019-02-01
CN109299172B true CN109299172B (zh) 2021-02-12

Family

ID=65165491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810978307.7A Active CN109299172B (zh) 2018-08-27 2018-08-27 一种基于Spring Boot在不同环境的数据源接入方法和装置

Country Status (1)

Country Link
CN (1) CN109299172B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124913B (zh) * 2019-12-20 2023-08-18 广州品唯软件有限公司 数据模板的生成方法、数据模板的生成装置及存储介质
CN111414194B (zh) * 2020-03-19 2023-08-11 政采云有限公司 一种接口信息生成方法、系统、电子设备及存储介质
CN111949513A (zh) * 2020-07-09 2020-11-17 中国建设银行股份有限公司 一种配置文件加载方法、装置、电子设备和可读存储装置
CN113791815A (zh) * 2020-11-30 2021-12-14 京东安联财产保险有限公司 配置绑定方法及装置、配置调用方法、装置及系统
CN112685032A (zh) * 2020-12-31 2021-04-20 北京赛思信安技术股份有限公司 一种基于spring boot框架的动态api可视化生成方法
CN114785767A (zh) * 2022-03-17 2022-07-22 中国电信集团工会上海市委员会 一种免安装客户端的连接TDengine的方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6575492B2 (ja) * 2016-11-29 2019-09-18 トヨタ自動車株式会社 自動運転システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"spring boot 动态数据源切换+通用mapper配置";不怎么会飞的猪;《简书社区》;20180517;第1-11页 *
"springboot+mybatis多数据源配置,AOP注解动态切换数据源";xiaosheng_papa;《CSDN》;20180506;第1-13页 *
"springboot+mybatis多数据源配置,AOP注解动态切换数据源";引鸩怼孑;《开源中国》;20180530;第1-12页 *
"springboot添加多数据源连接池并配置Mybatis";funnyZpC;《博客园》;20180616;第1-9页 *

Also Published As

Publication number Publication date
CN109299172A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN109299172B (zh) 一种基于Spring Boot在不同环境的数据源接入方法和装置
US9477727B2 (en) Abstracting data for use by a mobile device having occasional connectivity
CN110912724B (zh) 一种基于参数驱动的自动业务编排方法及装置
CN109491695A (zh) 一种集成安卓应用的增量更新方法
US8244780B1 (en) Parameter oriented automated database command
CN109032631B (zh) 应用程序补丁包获取方法、装置、计算机设备及存储介质
CN110308999B (zh) 一种应用间动态共享依赖包的方法、存储介质及移动终端
US20080098037A1 (en) Markup language based database upgrades
CN108897547B (zh) 一种软件自动化部署方法及装置
WO2019205828A1 (zh) Android服务框架、实现扩展服务的方法及装置
CN102567033B (zh) 基于嵌入式实时Java虚拟机的预先类加载方法及装置
US20220244927A1 (en) Robotic process automation system with a command action logic independent execution environment
CN105389186A (zh) 一种Java应用的热部署方法及系统
CN111857801B (zh) 一种移动应用的构建方法
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
Trias et al. Migrating traditional web applications to CMS-based web applications
US9411618B2 (en) Metadata-based class loading using a content repository
CN115129740B (zh) 一种云原生环境下的分布式微服务数据库更新方法及系统
CN110457013B (zh) 程序组件配置装置及方法
CN111984660A (zh) 数据同步方法、装置、设备及存储介质
CN105653334B (zh) 一种基于saas模式的mis系统快速开发框架
CN115061797B (zh) 一种Quartz组件的调用方法及装置
CN113360156B (zh) 一种ios编译方法及相关设备
CN114816437A (zh) 一种逆向生成Java实体类的方法、系统和设备
CN113656010B (zh) 一种微服务自动创建代码仓库的方法、系统、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190904

Address after: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant after: China Science and Technology (Beijing) Co., Ltd.

Address before: Room 601, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: Beijing Shenzhou Taiyue Software Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 230000 zone B, 19th floor, building A1, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Dingfu Intelligent Technology Co., Ltd

Address before: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: DINFO (BEIJING) SCIENCE DEVELOPMENT Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant