文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

springboot下配置多数据源的方法

2023-05-31 15:57

关注

一、springboot 简介

SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring配置。

你可以使用SpringBoot创建Java应用,并使用 java -jar 启动它或采用传统的war部署方式。我们也提供了一个运行"spring 脚本"的命令行工具。

二、传统的DataSource配置

Java的javax.sql.DataSource接口提供了一个标准的使用数据库连接的方法。传统做法是,一个DataSource使用一个URL连

同相应的证书去初始化一个数据库连接。

开发中,一个项目中经常会使用到不知一个数据源,本文主要讲解如何在springboot下整合mybatis配置多数据源。主要对比下传统的xml配置数据源和springboot下的数据源配置。

首先介绍下传统的xml下如何配置多数据源

1、项目结构

springboot下配置多数据源的方法

使用maven构建的项目中,所有的数据源配置到DAO层,即图中 subscribecore.dal module

2、dal的目录结构

springboot下配置多数据源的方法

数据库对应的java实体类。

每个库对应的mapper文件。

每个mapper文件对应的到的xml文件。

生产环境\测试环境对应的数据源配置文件。

每个数据库对应的配置文件。

3、具体的配置文件介绍

springboot下配置多数据源的方法

mysql库为例,详细展开对mysql数据配置的介绍

java实体类

使用的mysql库中的一张表,通过mybatis自动生成工具,生成了chartconfig类和chartconfigExample类。

msyql库的mapper文件

springboot下配置多数据源的方法

mapper文件对应的到的xml文件

springboot下配置多数据源的方法

mysql测试环境对应的数据源配置文件

springboot下配置多数据源的方法

myssql数据库对应的配置文件

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:cache="http://www.springframework.org/schema/cache"     xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd             http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd             http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx.xsd             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd             http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">   <context:component-scan base-package="com.zto.subscribecore"></context:component-scan>      <!-- 数据源 -->   <bean id="mysqlDataSource" class="com.alibaba.druid.pool.DruidDataSource"      init-method="init" destroy-method="close">     <!-- 驱动名称 -->     <property name="DriverClassName" value="${mysql.DriverClassName}"/>     <!-- JDBC连接串 -->     <property name="url" value="${mysql.url}"/>     <!-- 数据库用户名称 -->     <property name="username" value="${mysql.username}"/>     <!-- 数据库密码 -->     <property name="password" value="${mysql.password}"/>     <!-- 连接池最大使用连接数量 -->     <property name="maxActive" value="${mysql.maxActive}"/>     <!-- 初始化大小 -->     <property name="initialSize" value="${mysql.initialSize}"/>     <!-- 获取连接最大等待时间 -->     <property name="maxWait" value="${mysql.maxWait}"/>     <!-- 连接池最小空闲 -->     <property name="minIdle" value="${mysql.minIdle}"/>     <!-- 逐出连接的检测时间间隔 -->     <property name="timeBetweenEvictionRunsMillis" value="${mysql.timeBetweenEvictionRunsMillis}"/>     <!-- 最小逐出时间 -->     <property name="minEvictableIdleTimeMillis" value="${mysql.minEvictableIdleTimeMillis}"/>     <!-- 测试有效用的SQL Query -->     <property name="validationQuery" value="${mysql.validationQuery}"/>     <!-- 连接空闲时测试是否有效 -->     <property name="testWhileIdle" value="${mysql.testWhileIdle}"/>     <!-- 获取连接时测试是否有效 -->     <property name="testOnBorrow" value="${mysql.testOnBorrow}"/>     <!-- 归还连接时是否测试有效 -->     <property name="testOnReturn" value="${mysql.testOnReturn}"/>   </bean>    <bean id="mysqlTransactionManager"      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">     <property name="dataSource" ref="mysqlDataSource"/>   </bean>    <tx:annotation-driven transaction-manager="mysqlTransactionManager"/>    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">     <property name="basePackage" value="com.zto.subscribecore.dal.mapper.mysql"/>     <property name="sqlSessionFactoryBeanName" value="mysqlSqlSessionFactory"/>   </bean>    <bean id="mysqlSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">     <property name="dataSource" ref="mysqlDataSource"/>     <property name="mapperLocations" value="classpath*:com/zto/subscribecore/dal/mapper/mysql/*.xml"></property>     <property name="typeAliasesPackage" value="com.zto.subscribecore.dal.domain"/>   </bean>  </beans> 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯