# gtboot-multidatasource **Repository Path**: zhaoliansheng/gtboot-multidatasource ## Basic Information - **Project Name**: gtboot-multidatasource - **Description**: SpirngBoot+JPA注解方式实现多数据源 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2019-06-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` title: SpringBoot+JPA多数据源(注解方式) date: 2019-06-27 author: maxzhao tags: - JAVA - 多数据源 - SpringBoot - 自定义注解 - AOP - MYSQL8 categories: - SpringBoot - JPA - JAVA ``` ### First - 项目中经常会遇到使用多个数据源的情况。 - 这里是基于 JPA 来配置多个数据源。 - 使用了 注解 + AOP 的方式实现。 - 如果多个数据源的表结构大不相同,不推荐使用,会产生冗余空表。 - 上面问题也可以通过分包扫描实现 - 上上面问题也可以通过 ` EntityManager `([doc](https://docs.jboss.org/hibernate/jpa/2.2/api/javax/persistence/EntityManager.html)) 实现(操作类似于` JpaRepository `,并且没有实体映射数据库的操作)。 - 上上上面那问题,在分包扫描方式中,对于不同数据库的相同表用注解实现跨数据库访问很方便。 - 基于 MySql 8.x - alibaba Druid pool #### 优点 - 注解+AOP 简化切换工作 - 配置多数据源简单 #### 缺点 - 不能简单的跟据参数动态切换数据源,也就是说,启动打那一刻,该方法执行连接的数据源就确定了。 - 如果其它数据源的表在主数据源中没有,则会自动在主数据源中添加。需要另外添加解决方案(扫描包的方式配置数据源)。这是JPA在初始化 Table Bean 的时候,必须要映射到对应数据库中的 Table。 > 本文地址: > [SpringBoot+JPA多数据源(注解方式)](https://www.jianshu.com/p/fdd9a7546aee) > > 推荐 > [IDEA好用的插件](https://www.jianshu.com/p/c1f87b0dd597) > [JAVA自定义注解](https://www.jianshu.com/p/c60d3b36142e)