# multi-datasource-mybaties
**Repository Path**: xzbd/multi-datasource-mybatis
## Basic Information
- **Project Name**: multi-datasource-mybaties
- **Description**: spring boot 2.0.2 mybatis mysql 多数据源demo
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-05-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# multi-datasource-mybaties
#### 项目介绍
spring boot 2.0.2 mybatis 多数据源demo
#### 软件架构
软件架构说明
#### 安装教程
1. ``` git clone https://gitee.com/xzbd/multi-datasource-mybatis.git ```
2. 使用Idea 或 eclipce 导入项目
3. 执行sql脚本(项目resource\doc下所有Sql脚本)
#### 使用说明
1. 本项目只是一个demo,只做技术练习
#### 开发过程中遇到的问题
1.spring boot 从配置文件获取配置数据到自定意 bean 。在网上等资源可以获知,spring boot 在2.X版本中多配置文件做了较多改动。
1.1 使用了` @ConfigurationProperties(prefix = "spring.datasource")` 与 `@Component` 注解,spring boot 读取不到配置的
属性,例如项目中的 DataSource12.java 。
**解决方案**
在pom中添加如下依赖即可。
```xml
org.springframework.boot
spring-boot-configuration-processor
true
```
1.2 经以上配置后,自定义的bean可以读取到配置文件里的属性了,但是并不是已经没有问题了。在本项目中,在写完数据库配置后,
```java
@Configuration
public class ConfigDataSource {
@Bean("dataSourceUser")
@Primary
@ConfigurationProperties(prefix = "spring.datasource.data1") // application.yml中对应属性的前缀
public DataSource dataSourceUser() {
return DataSourceBuilder.create().build();
}
@Bean("dataSourceOrder")
@ConfigurationProperties(prefix = "spring.datasource.data2") // application.yml中对应属性的前缀
public DataSource dataSourceOrder() {
return DataSourceBuilder.create().build();
}
}
```
初始化的数据源中,jdbcUrl 等基本属性丢失,代码报错。如下:
```text
数据源异常:
### Error querying database. Cause: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
### The error may exist in com/example/demo/user/mapper/UserMapper.xml
### The error may involve com.example.demo.user.mapper.UserMapper.getUser
### The error occurred while executing a query
原因是:配置文件在配置数据源不疯没有加载,debug中可以看到,jdbcUrl,username,pwd,driver都没有注入
```
```text
mybatis异常:Invalid bound statement (not found)
原因: XXXMapper.xml没有编译在指定的目录下
```
以上问题都可以在pom.xml中的build中配置用如下配置解决:
```xml
src/main/java
**/*.properties
**/*.yml
**/*.xml
false
src/main/resources
**/*.properties
**/*.yml
**/*.xml
false
```
3.提交代码到码云(gitee.com)时遇到的问题
```text
fatal: authentication failed for "your-repository@gitee.com"
```
**[解决方案](https://www.jianshu.com/p/8a7f257e07b8)**
```text
git config --system --unset credential.helper
```