`

Springboot+mybatis 高可用实现数据源配置

 
阅读更多
        在开发过程中,项目架构上面,由于公司的业务关系,可能需要使用到多个数据库,来实现分表,分库,这时候就需要配置多个数据源,最近在工作中,刚好有同事需要利用一下公司测试数据库,做一个测试小项目,自己就搭建了一下配置多数据源,下面是springboot 结合mybatis 配置多个多数据源源码和细节,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可,但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别介绍两种多数据源的配置方式,在MyApplication 里面加入
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class, ElasticsearchAutoConfiguration.class }) 数据源自动注入配置,事物配置
package com.alimama;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.context.annotation.ImportResource;

/**
 *
 */
//@MapperScan("com.alimama.dao")
@ImportResource({"classpath:/spring/spring-config.xml"})
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class, ElasticsearchAutoConfiguration.class })
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}


下面就是配置Spring 数据源通过包名:


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">


    <!-- 统计数据备份数据源 -->
    <bean id="tuia_consumerDataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"
          parent="dataSourceParent" primary="true">
        <property name="url" value="jdbc:mysql://172.16.18.49:3306/tuia_consumer"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

    <!-- 配置sessionFactory-->
    <bean id="tuia_consumerSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="tuia_consumerDataSource"/>
        <property name="mapperLocations" value="classpath:mybatis/tuiaConsumer/*.xml"/>
        <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
        <property name="typeAliasesPackage" value="com.alimama.entity.tuiaConsumer.*"/>
    </bean>


    <!-- 配置Template -->
    <bean id="tuia_consumerSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="tuia_consumerSqlSessionFactory"/>
    </bean>

    
     <!-- 配置扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
        <property name="sqlSessionFactoryBeanName" value="tuia_consumerSqlSessionFactory"/>
        <property name="basePackage" value="com.alimama.dao.tuiaConsumer"/>
        
        <!-- 这里也可以不配置Template 但是必须继承代码里面的BaseDao 来指定连接数据源-->
        <property name="sqlSessionTemplateBeanName" value="tuia_consumerSqlSessionTemplate"/>
    </bean>

    
    
    <!-- 配置Spring的事务管理器 -->
    <bean id="tuia_TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="tuia_consumerDataSource" />
        <qualifier value="tuia_TransactionManager"/>
    </bean>
</beans>



由于时间原因 我就粘贴了一段数据源配置,想要了解具体的 下载源码查看
github 源码地址:
https://github.com/java-datas/MultipleDataSource.git












分享到:
评论

相关推荐

    springboot+mybatis-plus+shardingsphere 实现读写分离

    总结起来,"springboot+mybatis-plus+shardingsphere 实现读写分离"的项目结合了Spring Boot的简洁高效、MyBatis-Plus的便捷操作以及ShardingSphere的分布式数据库管理,构建了一个高可用、高性能的系统架构。...

    springboot+mybatis+sqlserver 仓库管理系统

    3. SQLServer:作为Microsoft公司的一款关系型数据库管理系统,SQLServer具有高可用性、安全性及性能优化等特点,是企业级数据库的首选之一。 二、系统功能 1. 复制、导出与打印:系统提供了数据复制、导出为常见...

    springboot+mybatis+javafx项目

    该项目是一个集成SpringBoot、MyBatis和JavaFX的综合应用,...开发者可以通过SpringBoot来快速搭建服务端,利用MyBatis与Oracle数据库进行数据交互,同时通过JavaFX设计用户友好的交互界面,实现档案管理的高效和便捷。

    springboot + mybatis +mysql+ sqlserver 双数据源

    本项目"springboot + mybatis +mysql+ sqlserver 双数据源"正是针对这种需求的一个解决方案,它利用SpringBoot框架、MyBatis持久层框架以及MySQL和SQLServer两种数据库,实现了数据源的自动切换,以满足不同业务场景...

    使用Springboot+Mybatis完成的线上网盘

    它集成了大量的常用第三方库配置,如数据源、JPA、MVC、定时任务等,使得开发者可以快速地进行开发,无需进行繁琐的配置工作。Spring Boot的特性包括自动配置、内嵌式Servlet容器(如Tomcat)、起步依赖等,极大地...

    springboot+mybatis配置多数据源,通过注解自动切换

    Spring Boot结合MyBatis框架提供了方便的方式来配置和管理多个数据库连接,实现数据源的动态切换。本文将详细探讨如何在Spring Boot项目中配置多数据源,并利用注解自动切换,以及实现简单的读写分离和负载均衡。 ...

    springboot+mybatis+mysql+AbstractRoutingDataSource实现多数据源切换(一写多读数据源)

    springboot+mybatis+mysql+AbstractRoutingDataSource实现多数据源切换(一写多读数据源)项目中包含完整的demo案例配备文档说明,亲测可用;实现简单,代码思路清晰.

    springboot+druid+mybatis多数据源动态切换案例

    5. **MyBatis配置**:在多数据源环境下,MyBatis的配置需要针对每个数据源分别设置SqlSessionFactory,并在Mapper接口上通过@MapperScan注解指定对应的SqlSessionFactory。 6. **事务管理**:在多数据源情况下,...

    SpringBoot + Mybatis + Redis 整合

    对于Mybatis的配置,我们需要创建一个`mybatis-config.xml`文件,定义数据源和Mapper扫描路径。同时,在SpringBoot的主配置类上使用`@MapperScan`注解扫描Mapper接口。 为了在应用中使用Redis,我们可以创建一个...

    springboot+mybatis-war

    3. **添加MyBatis配置**:配置MyBatis的主配置文件(`mybatis-config.xml`),定义数据源和事务管理器。同时,需要在Spring Boot的配置类中启用MyBatis并指定配置文件位置。 4. **创建Mapper接口和XML映射文件**:...

    springboot+mybatis多数据源,aop动态切换

    总结起来,"springboot+mybatis多数据源,aop动态切换"项目涉及了SpringBoot的自动配置、MyBatis的SQL映射、多数据源配置、AOP的动态数据源切换等关键技术。通过这些技术,开发者可以构建出高可用、高性能的分布式...

    springboot+mybatis多数据源配置下载

    首先,我们来看标题中的"springboot+mybatis多数据源配置"。在Spring Boot中,多数据源配置意味着应用程序需要连接并管理多个数据库。这通常涉及以下几个步骤: 1. **引入依赖**:在`pom.xml`或`build.gradle`文件...

    springboot+mybatis的读写分离

    在读写分离场景下,MyBatis可以通过不同的数据源配置,实现读操作和写操作的分离。 Druid是阿里巴巴开源的数据库连接池,它不仅提供了性能监控、SQL解析、防SQL注入等功能,还支持多数据源的配置,非常适合用于实现...

    springboot+mybatisplus(mybatis)+mysql+oracle 多数据源项目

    在本项目中,我们主要探讨的是如何利用Spring Boot框架与Mybatis Plus进行多数据源的配置和管理,同时结合MySQL和Oracle两种不同的数据库系统。这是一个典型的企业级应用场景,能够帮助开发者更好地理解和处理多...

    springboot+mybatis学生选课系统.zip

    2. 配置Mybatis:通过application.yml或application.properties文件配置数据源、Mybatis的配置路径、Mapper扫描路径等。 3. 创建Mapper接口和Mapper XML文件:定义数据库操作的接口,并在对应的XML文件中编写SQL语句...

    springboot2.0+mybatis主从数据库双数据源。

    本项目基于SpringBoot 2.0框架和MyBatis持久层技术,实现了主从数据库双数据源的配置,确保在高并发环境下既能保证数据的一致性,又能提升读取效率。 SpringBoot 2.0是Spring框架的一个轻量级版本,它简化了Spring...

    SpringBoot+MyBatis+Redis

    它默认配置了许多常见的服务,如Tomcat(嵌入式Web服务器)、数据源、缓存等,使得开发者无需进行繁琐的配置即可快速启动应用。 【MyBatis】 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级...

    基于springboot+mybatis的酒店管理系统

    通过自动配置特性,SpringBoot能够自动加载适合的应用配置,如数据源、缓存、定时任务等,极大地提高了开发效率。在本项目中,SpringBoot用于处理HTTP请求、提供RESTful API、实现业务逻辑以及集成其他服务。 ...

    SpringBoot2.1.3+Mybatis(Mysql)+Security+Redis+RocketMQ

    在项目中,SpringBoot会自动配置许多依赖,如数据源、Tomcat服务器等,使得开发者能更专注于业务逻辑。 Mybatis是一个持久层框架,它简化了SQL操作,通过XML或注解进行映射,将Java对象和数据库表字段绑定。在...

    springboot+mybatis在线问卷系统.zip

    例如,通过Spring Boot,我们可以轻松集成数据源、Thymeleaf模板引擎(用于生成网页)、Spring Security(提供安全控制)以及Spring Data JPA或MyBatis来处理数据库操作。 MyBatis在该系统中的作用是作为数据访问层...

Global site tag (gtag.js) - Google Analytics