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作为Java领域的一款微服务框架,提供了强大的数据源配置能力,使得开发者能够轻松处理多数据源的问题。本篇文章将详细介绍如何在Spring Boot中进行多数据源配置,以及与Mybatis框架的集成,包括Mybatis的...
在Spring Boot应用中,多数据源配置是一项重要的技术实践,特别是在大型系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或是分布式事务管理。Spring Boot以其强大的自动化配置能力,使得设置多数据源变得...
### Spring Boot多数据源配置详解 #### 一、引言 在实际的软件开发过程中,随着业务需求的多样化,单一的数据源已经无法满足所有场景的需求。例如,有时我们需要同时访问两个或更多的数据库来完成复杂的业务逻辑,...
总结来说,Spring Boot + JPA 的多数据源配置需要对Spring的配置机制有深入理解,包括自动配置、bean的创建、数据源的切换等。同时,合理组织实体类和数据库访问层,确保代码的可维护性和扩展性。这个名为`...
在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们了解什么是`JdbcTemplate`。它是Spring提供的一种模板类,用于执行SQL语句,通过回调机制将结果转换为Java...
在Spring Boot 2框架中,实现多数据源的配置是一项重要的任务,特别是在大型企业级应用中,可能需要连接到不同的数据库来满足不同业务的需求。在这个项目中,我们有两个主要的数据访问技术:Hibernate和MyBatis,...
1. **配置多数据源**:Spring Boot通过`@ConfigurationProperties`注解可以轻松读取配置文件中的属性,并将其映射到Java对象中。在`application.yml`或`application.properties`中,我们需要定义两个或更多的数据源...
在Spring Boot应用中,多数据源的配置与管理是一项重要的任务,特别是在大型系统中,可能需要连接到不同的数据库以满足不同业务的需求。本教程将详细讲解如何在Spring Boot项目中集成Druid连接池,并利用AOP注解实现...
本压缩包"spring boot多数据源.rar"提供了相关的源码,旨在帮助开发者理解和实践Spring Boot如何处理多个数据库的数据源配置和事务管理。 首先,Spring Boot通过其自动配置特性使得数据源的配置变得简单。在常规的...
《Spring Boot多数据源(支持Spring声明式事务切换和回滚)》 Spring Boot多数据源技术是构建高效、灵活的多租户SaaS架构的关键。在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论...
4. **配置多数据源**: 在Spring Boot中,可以通过配置不同的`@Configuration`类来设置多个数据源。每个数据源可以有自己的`DataSourceProperties`,并通过`@Bean`注解创建对应的`DataSource`实例。 5. **切换数据源...
在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...
本示例“spring boot数据源切换demo”将展示如何在Spring Boot中集成MyBatis Plus进行多数据源的配置与切换。 首先,我们需要了解Spring Boot对数据源的支持。Spring Boot默认支持多种数据库,如MySQL、Oracle等,...
综上所述,"springboot完美实现多数据源.rar"项目提供了学习Spring Boot多数据源配置和使用的宝贵资源,对于初学者来说,这是一个很好的实践案例,可以帮助理解如何在实际项目中处理多个数据库的连接和操作。
本篇文章将深入探讨Spring Boot如何实现多数据源的配置,并通过源码分析增强我们的理解。 首先,我们要明白什么是数据源。在Java世界中,数据源通常指的是JDBC DataSource,它是Java中用于管理数据库连接的接口。在...
### Spring Boot多数据源配置详解 #### 一、多数据源背景及应用场景 在实际的Spring Boot项目开发过程中,通常我们会为项目配置一个主要的数据源,以便于项目的正常运行与数据库交互。但在某些复杂的业务场景下,...
Spring Boot作为流行的Java开发框架,提供了一种便捷的方式来管理和配置多数据源。本篇将深入探讨如何在Spring Boot项目中实现双数据源配置。 首先,我们需要理解什么是数据源(DataSource)。数据源是Java中用于...
本文将深入探讨如何在SpringBoot项目中配置多数据源,并实现数据源的动态切换,帮助你理解和掌握这一核心技能。 首先,我们理解"多数据源"的概念。在SpringBoot应用中,多数据源意味着系统能够连接并操作多个不同的...