文章目录
前期准备工作
新建一个SpringBoot的项目,暂时先导入两个必要的包
当然还有导入一些其他的包,这里会用到aop,mybatis plus, druid 等,在pom文件中添加以上的依赖:
<!--aop-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
然后可以用代码生成工具生成简单的一条线entity,controller,service,dao,mapper,把项目目录结构先搞出来;
这是当前demo的目录结构,datasource那个包是做多数据源处理的,先建上;
项目一开始启动时扫描不到controller和service,这里在启动类中加入@ComponentScan(“包名”)
启动类:DatasourceDemoApplication
@MapperScan("com.example.dao")
@ComponentScan("com.example.controller")
@ComponentScan("com.example.service")
@SpringBootApplication
public class DatasourceDemoApplication {
public static void main(String[] args) {
SpringApplication.run(DatasourceDemoApplication.class, args);
}
}
集成动态数据源模块
- 步骤1,在spring boot中,增加多数据源的配置
- 步骤2,扩展Spring的AbstractRoutingDataSource抽象类,
AbstractRoutingDataSource中的抽象方法determineCurrentLookupKey是实现多数据
源的核心,并对该方法进行Override - 步骤3,配置DataSource,指定数据源的信息
- 步骤4,通过注解,实现多数据源
- 步骤5、配置加上(exclude={DataSourceAutoConfiguration.class})
然后按着上面的步骤来吧~
1. 步骤一 配置多数据源信息
在yml配置文件中添加数据源的信息,这里我复制了renren_fast的数据库,更名为renren_fast2,然后将renren_fast2中sys_user表中id为1的用户名改为了admin_456.
datasource-demo\src\main\resources\application.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
druid:
first:
url: jdbc:mysql://localhost:3306/