栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot jpa 动态加载 追加 切换数据源 支持启动无数据源

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot jpa 动态加载 追加 切换数据源 支持启动无数据源

LCCP-DYNAMICDB-STARTER

Springboot动态追加数据源
 动态追加切换,线上灵活运行

LCCP(lower-code-create-platform)是一系列的微服务和starter包的出包平台的简称

LCCP-DYNAMICDB-STARTER是针对springboot项目提供数据源的动态控制的包

目的是为了支持工具类型的服务在现场能够在界面动态的切换数据库。
场景一:

1. **证书许可服务**正常启动后,需要导入安装许可来对服务进行初始化;
2. 安装许可就包含了现场的**数据库信息**,导入安装许可后,该证书服务才能被初始化完毕。
技术栈

springboot 2.3.4

spring-data-jpa 2.3.4

一定要看清版本,hibernate4和5是不兼容的。

特点功能 对于后端
  • 数据源切换后,可以自由选择是否生成表;
  • 数据源添加和切换方式灵活,可在项目中定制数据源的切换方式和数据源的持久化方式;
  • 配置简单,引入该starter包 ,仅需在配置文件中配置即可进行简单配置即可;
  • 支持二次开发,拓展更多的数据库支持类型;

使用方式展示

引入包


  com.sdt
  lccp-dynamicdb-starter
  0.0.1.0

yml配置
spring:
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: update
    properties:
      hibernate.naming.physical-strategy: org.hibernate.scripts.model.naming.PhysicalNamingStrategyStandardImpl

lccp:
  dynamic:
    datasource:
      enable: true
      dataSourceProvider: com.sdt.license.dynamic.provide.DynamicDataSourceProvider
      repositoryPath: com.sdt.license.*
      entityPath: com.sdt.license.*

和我们包相关的配置是spring.jpa下的配置和lccp下的配置。dynamic的配置是我们示例中持久化的位置。

启动类配置
@EnableTransactionManagement
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

启动的时候排除掉数据库和orm的自动装配的类。

数据源提供
public class DynamicDataSourceProvider implements IDataSourceProvider {

    @Override
    public RegisterDbConnReq getDbInfo(ApplicationContext applicationContext) {

        RegisterDbConnReq dbEntity = new RegisterDbConnReq();
        // 省去业务逻辑,自定义的数据源提供类,没有则直接返回空的连接信息
        return dbEntity;
    }
}

只要实现IDataSourceProvider接口即可。

对外提供的数据源操作接口
public interface IDynamicDataSourceService {

    
    void addDbInfo(RegisterDbConnReq req);

    
    void switchDB(String dbName);

    
    List viewDB();

    
    void deleteDBInfo(String dbName);
}
如何使用的示例地址:

license-server · master · 史皓燃 / lccp-cloud · GitLab

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号