`
zx_code
  • 浏览: 98534 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring boot多数据源配置

 
阅读更多
spring boot多数据源的配置,spring boot+mybatis配置数据源

第一步pom.xml配置如下:

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
  
  <dependencies>
  
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-aop</artifactId>  
    </dependency>
    
    <!-- Mybatis -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- MYSQL -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.20</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.12</version>
		</dependency>
    
  </dependencies>


第二步application.properties配置如下:
#datascore one
spring.datasource.primary.url=jdbc:mysql://localhost/testdb1
spring.datasource.primary.username=test1
spring.datasource.primary.password=1234
spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver



#datascore two
spring.datasource.secondary.url=jdbc:mysql://localhost/testdb2
spring.datasource.secondary.username=test2
spring.datasource.secondary.password=1234
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver


第三步主要数据源对象配置如下:
/**
 * 数据源test1的配置
 * @author zx
 * @date 2017-03-12
 */
@Configuration
@MapperScan(basePackages = "com.zx.dao.test1", sqlSessionTemplateRef  = "test1SqlSessionTemplate")
public class DataSource1Config {

    @Bean(name = "test1DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.primary")
    @Primary
    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "test1SqlSessionFactory")
    @Primary
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);    
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:/mapper/test1/*Mapper*.xml"));
        return bean.getObject();
    }

    @Bean(name = "test1TransactionManager")
    @Primary
    public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "test1SqlSessionTemplate")
    @Primary
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}


/**
 * 数据源test2的配置
 * @author zx
 * @date 2017-03-12
 */
@Configuration
@MapperScan(basePackages = "com.zx.dao.test2", sqlSessionTemplateRef  = "test2SqlSessionTemplate")
public class DataSource2Config {

    @Bean(name = "test2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.secondary")
    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "test2SqlSessionFactory")
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/test2/*.xml"));
        return bean.getObject();
    }

    @Bean(name = "test2TransactionManager")
    public DataSourceTransactionManager testTransactionManager(@Qualifier("test2DataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "test2SqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}


具体项目参考github如下:
项目地址:https://github.com/zhangxia1030/spring-boot-datasources
分享到:
评论

相关推荐

    Spring Boot多数据源配置

    Spring Boot作为Java领域的一款微服务框架,提供了强大的数据源配置能力,使得开发者能够轻松处理多数据源的问题。本篇文章将详细介绍如何在Spring Boot中进行多数据源配置,以及与Mybatis框架的集成,包括Mybatis的...

    springboot多数据源配置

    在Spring Boot应用中,多数据源配置是一项重要的技术实践,特别是在大型系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或是分布式事务管理。Spring Boot以其强大的自动化配置能力,使得设置多数据源变得...

    SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置).docx

    ### Spring Boot多数据源配置详解 #### 一、引言 在实际的软件开发过程中,随着业务需求的多样化,单一的数据源已经无法满足所有场景的需求。例如,有时我们需要同时访问两个或更多的数据库来完成复杂的业务逻辑,...

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    总结来说,Spring Boot + JPA 的多数据源配置需要对Spring的配置机制有深入理解,包括自动配置、bean的创建、数据源的切换等。同时,合理组织实体类和数据库访问层,确保代码的可维护性和扩展性。这个名为`...

    Spring Boot多数据源(JdbcTemplate)配置与使用

    在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们了解什么是`JdbcTemplate`。它是Spring提供的一种模板类,用于执行SQL语句,通过回调机制将结果转换为Java...

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    在Spring Boot 2框架中,实现多数据源的配置是一项重要的任务,特别是在大型企业级应用中,可能需要连接到不同的数据库来满足不同业务的需求。在这个项目中,我们有两个主要的数据访问技术:Hibernate和MyBatis,...

    spring boot 多数据源项目

    1. **配置多数据源**:Spring Boot通过`@ConfigurationProperties`注解可以轻松读取配置文件中的属性,并将其映射到Java对象中。在`application.yml`或`application.properties`中,我们需要定义两个或更多的数据源...

    spring boot多数据源(AOP注解动态切换)

    在Spring Boot应用中,多数据源的配置与管理是一项重要的任务,特别是在大型系统中,可能需要连接到不同的数据库以满足不同业务的需求。本教程将详细讲解如何在Spring Boot项目中集成Druid连接池,并利用AOP注解实现...

    spring boot多数据源.rar

    本压缩包"spring boot多数据源.rar"提供了相关的源码,旨在帮助开发者理解和实践Spring Boot如何处理多个数据库的数据源配置和事务管理。 首先,Spring Boot通过其自动配置特性使得数据源的配置变得简单。在常规的...

    Spring Boot多数据源(支持Spring声明式事务切换和回滚).pdf

    《Spring Boot多数据源(支持Spring声明式事务切换和回滚)》 Spring Boot多数据源技术是构建高效、灵活的多租户SaaS架构的关键。在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论...

    spring-boot2.0多数据源

    4. **配置多数据源**: 在Spring Boot中,可以通过配置不同的`@Configuration`类来设置多个数据源。每个数据源可以有自己的`DataSourceProperties`,并通过`@Bean`注解创建对应的`DataSource`实例。 5. **切换数据源...

    Spring Boot使用spring-data-jpa配置Mysql多数据源

    在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...

    spring boot数据源切换demo

    本示例“spring boot数据源切换demo”将展示如何在Spring Boot中集成MyBatis Plus进行多数据源的配置与切换。 首先,我们需要了解Spring Boot对数据源的支持。Spring Boot默认支持多种数据库,如MySQL、Oracle等,...

    springboot完美实现多数据源.rar

    综上所述,"springboot完美实现多数据源.rar"项目提供了学习Spring Boot多数据源配置和使用的宝贵资源,对于初学者来说,这是一个很好的实践案例,可以帮助理解如何在实际项目中处理多个数据库的连接和操作。

    spring boot 多数据源

    本篇文章将深入探讨Spring Boot如何实现多数据源的配置,并通过源码分析增强我们的理解。 首先,我们要明白什么是数据源。在Java世界中,数据源通常指的是JDBC DataSource,它是Java中用于管理数据库连接的接口。在...

    SpringBoot多数据源配置(方式二:在代码中动态切换需要使用哪个数据源).docx

    ### Spring Boot多数据源配置详解 #### 一、多数据源背景及应用场景 在实际的Spring Boot项目开发过程中,通常我们会为项目配置一个主要的数据源,以便于项目的正常运行与数据库交互。但在某些复杂的业务场景下,...

    spring boot 双数据源

    Spring Boot作为流行的Java开发框架,提供了一种便捷的方式来管理和配置多数据源。本篇将深入探讨如何在Spring Boot项目中实现双数据源配置。 首先,我们需要理解什么是数据源(DataSource)。数据源是Java中用于...

    SpringBoot配置多数据源实现动态切换数据源

    本文将深入探讨如何在SpringBoot项目中配置多数据源,并实现数据源的动态切换,帮助你理解和掌握这一核心技能。 首先,我们理解"多数据源"的概念。在SpringBoot应用中,多数据源意味着系统能够连接并操作多个不同的...

Global site tag (gtag.js) - Google Analytics