file-type

Dynamic-Datasource v3.5.1:SpringBoot 多数据源组件详解

版权申诉

ZIP文件

5星 · 超过95%的资源 | 119KB | 更新于2025-04-10 | 136 浏览量 | 1 下载量 举报 1 收藏
download 限时特惠:#9.90
### 知识点详细说明 #### 标题知识点 - **Dynamic-Datasource**:这是一个开源组件,它允许在SpringBoot应用程序中实现动态数据源管理。 - **版本号**:v3.5.1表示这是Dynamic-Datasource组件的一个具体版本,该版本号表明了其更新情况,通常表示功能上的改进与修复。 #### 描述知识点 - **多数据源组件**:组件用于在同一个SpringBoot应用中管理多个数据库数据源,支持不同数据源之间的切换和访问。 - **Seata分布式事务支持**:Seata是一个开源的分布式事务解决方案,Dynamic-Datasource支持与Seata集成,实现跨多个数据库的事务一致性。 - **数据源分组**:可以将数据源分为不同的组,按照业务逻辑或应用场景来组织,比如将读写分离的数据库、一主多从架构等归为一组。 - **数据源加密**:支持对数据库敏感配置信息加密,以ENC()函数为例,其中ENC表示加密,需要自定义加密方式。 - **独立初始化表结构**:每个数据库连接可以独立初始化自己的表结构和数据库,使得部署更加灵活。 - **无数据源启动**:应用可以在没有预先定义数据源的情况下启动。 - **懒加载数据源**:数据源连接可以在需要时才创建,优化资源利用,降低启动时的资源消耗。 - **自定义注解**:支持扩展自定义注解来控制数据源的切换逻辑。 - **快速集成数据库连接池**:提供快速集成常用数据库连接池的方案,如Druid、HikariCP、BeeCP、Dbcp2等。 - **集成其他组件方案**:针对Mybatis-Plus、Quartz、ShardingJdbc、P6sy、Jndi等组件提供集成方案。 - **自定义数据源来源方案**:允许开发者自定义数据源配置来源,如从外部数据库加载。 - **动态增加移除数据源**:提供了在项目运行期间动态地增加或移除数据源的能力。 - **纯读写分离方案**:在Mybatis环境下,提供了实现读写分离的具体方案。 - **spel动态参数解析数据源**:支持使用Spring Expression Language(SpEL)来动态解析数据源,内置session和header支持,允许自定义。 - **多层数据源嵌套切换**:允许在复杂的业务场景中实现多层数据源之间的嵌套和切换。 #### 标签知识点 - **dynamic**:标签表示该组件是一个动态数据源解决方案,强调其在数据源切换、配置及管理上的灵活性。 #### 压缩包子文件名称列表知识点 - **文件名称**:"dynamic-datasource-spring-boot-starter-v3.5.1",文件列表中的唯一文件名,表明了这是一个Spring Boot的Starter包,该Starter包对应的版本为v3.5.1,方便开发者下载和集成使用。 ### 总结 Dynamic-Datasource是一个强大的SpringBoot多数据源组件,支持多种数据库连接池和业务场景。组件简化了多数据源配置和管理的复杂性,提供了一系列实用的特性,例如数据源分组、加密、初始化、懒加载、自定义注解、动态增删数据源和读写分离。通过SpEL支持动态数据源切换,让开发者可以灵活地处理不同业务场景下的数据库交互。其版本号体现了持续改进和更新的特点,以及对Seata等分布式事务工具的支持,使得分布式系统在多数据库环境下也能保持事务一致性。开发者可以基于此组件快速搭建和部署复杂的数据库操作环境。

相关推荐

filetype

com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasource at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determinePrimaryDataSource(DynamicRoutingDataSource.java:90) ~[dynamic-datasource-spring-boot-starter-3.4.1.jar:3.4.1] at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.getDataSource(DynamicRoutingDataSource.java:141) ~[dynamic-datasource-spring-boot-starter-3.4.1.jar:3.4.1] at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determineDataSource(DynamicRoutingDataSource.java:77) ~[dynamic-datasource-spring-boot-starter-3.4.1.jar:3.4.1] at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:43) ~[dynamic-datasource-spring-boot-starter-3.4.1.jar:3.4.1] at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ~[spring-jdbc-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:324) ~[spring-jdbc-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.getProduct(DataSourceHealthIndicator.java:122) ~[spring-boot-actuator-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doDataSourceHealthCheck(DataSourceHealthIndicator.java:105) ~[spring-boot-actuator-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doHealthCheck(DataSourceHealthIndicator.java:100) ~[spring-boot-actuator-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(Abstract

filetype

Properties检查语法:server.port=9012 spring.application.name=saas-base # logback logging.config=classpath:saas-logback.xml logPath=/app/lds-pxp/${spring.application.name}/logs logging.maxHistory=30 #\u670D\u52A1\u6CE8\u518C\u4E2D\u5FC3,\u96C6\u7FA4\u591A\u4E2A\u6709\u9017\u53F7\u5206\u5272 spring.profiles.active=prod spring.cloud.nacos.discovery.server-addr=192.168.88.130:9848 spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.discovery.server-addr} spring.main.allow-bean-definition-overriding=true #spring.cloud.nacos.config.file-extension=properties #spring.cloud.nacos.config.shared-configs[0]=application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} spring.redis.host=192.168.88.130 spring.redis.port=6379 spring.redis.password=123456 spring.redis.database=15 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.loginUsername=admin spring.datasource.druid.stat-view-servlet.loginPassword=123456 spring.datasource.dynamic.druid.initial-size=5 spring.datasource.dynamic.druid.min-idle=5 spring.datasource.dynamic.druid.maxActive=20 spring.datasource.dynamic.druid.maxWait=60000 spring.datasource.dynamic.druid.timeBetweenEvictionRunsMillis=60000 spring.datasource.dynamic.druid.minEvictableIdleTimeMillis=300000 spring.datasource.dynamic.druid.validationQuery=SELECT 1 FROM DUAL spring.datasource.dynamic.druid.testWhileIdle=true spring.datasource.dynamic.druid.testOnBorrow=false spring.datasource.dynamic.druid.testOnReturn=false spring.datasource.dynamic.druid.poolPreparedStatements=true spring.datasource.dynamic.druid.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.dynamic.druid.filters=stat,slf4j spring.datasource.dynamic.druid.connectionProperties=druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.dynamic.datasource.master.url=jdbc:mysql://192.168.88.130:3306/dev_base?useUnico

YunFeiDong
  • 粉丝: 178
上传资源 快速赚钱