当前位置: 首页 > news >正文

东莞长安网站设计公司网站集约化建设行业规定

东莞长安网站设计公司,网站集约化建设行业规定,贵州建设公司网站,wordpress移动端页面一、 业务场景解释 由于公司业务需要开发设计一款文件读取导入工具,导入的配置和目标数据库并不一定在同一个数据库地址,故需要使用到自定义数据源,并且支持数据源切换 大致场景如下: 二、工具选择 鉴于市面上有很多工具&#…

一、 业务场景解释

由于公司业务需要开发设计一款文件读取导入工具,导入的配置和目标数据库并不一定在同一个数据库地址,故需要使用到自定义数据源,并且支持数据源切换

大致场景如下:

image-20231101094735988

二、工具选择

鉴于市面上有很多工具,具体查找资料时也看的了很多,比如比较原生的druid驱动切换写法等等,而公司目前架构中有一个工具引起了我的注意:

苞米豆的“dynamic-datasource-spring-boot-starter”

官方文档地址:https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611

多数据源切换的原理教学:https://www.bilibili.com/video/BV11Z4y1f7cT/

关于基础的dynamic-datasource-spring-boot-starter就不做介绍了,官方文档讲的很清楚

三、代码实例

3.1 导入依赖

<!--多数据源-->
<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>4.2.0</version>
</dependency>

关于版本的选择:

dynamic-datasourcejdkspringbootgravveldruid
3.5.2jdk1.7+1.5.x和2.x.x和3.x.x不支持不支持1.2.17引入的socketTimeout和connectTimeout
4.1.3jdk1.7+1.5.x和2.x.x和3.x.x不支持都支持
>=4.2.0jdk1.8+1.5.x和2.x.x和3.x.x支持都支持

目前自己的项目是springboot2.5.2 jdk1.8,配合4.20版本是兼容可用的

3.2 示例

package com.zhc.dynamic;import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.creator.*;
import com.baomidou.dynamic.datasource.creator.basic.BasicDataSourceCreator;
import com.baomidou.dynamic.datasource.creator.beecp.BeeCpDataSourceCreator;
import com.baomidou.dynamic.datasource.creator.dbcp.Dbcp2DataSourceCreator;
import com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator;
import com.baomidou.dynamic.datasource.creator.hikaricp.HikariDataSourceCreator;
import com.baomidou.dynamic.datasource.creator.jndi.JndiDataSourceCreator;
import com.zhc.domain.DataSourceDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;import javax.sql.DataSource;
import java.util.Set;@RestController
@RequestMapping("/datasources")
public class DataSourceController {@Autowiredprivate DataSource dataSource;// private final DataSourceCreator dataSourceCreator; //3.3.1及以下版本使用这个通用,强烈推荐sb2用户至少升级到3.5.2版本@Autowiredprivate DefaultDataSourceCreator dataSourceCreator;//如果是用4.x以上版本,因为要和spring解绑,重构了一些东西,比如缺少了懒启动和启动初始化数据库。不太建议用以下独立的创建器,只建议用上面的DefaultDataSourceCreator@GetMapping// ("获取当前所有数据源")public Set<String> now() {DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;return ds.getDataSources().keySet();}//通用数据源会根据maven中配置的连接池根据顺序依次选择。//默认的顺序为druid>hikaricp>beecp>dbcp>spring basic@PostMapping("/add")// ("通用添加数据源(推荐)")public Set<String> add(@Validated @RequestBody DataSourceDTO dto) {DataSourceProperty dataSourceProperty = new DataSourceProperty();BeanUtils.copyProperties(dto, dataSourceProperty);DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;DataSource dataSource = dataSourceCreator.createDataSource(dataSourceProperty);ds.addDataSource(dto.getPoolName(), dataSource);return ds.getDataSources().keySet();}@DeleteMapping// ("删除数据源")public String remove(String name) {DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;ds.removeDataSource(name);return "删除成功";}
}

以上示例提供了用户通过接口对数据源进行增删查

package com.zhc.domain;import lombok.Data;@Data
public class    DataSourceDTO {/*** 连接池名称*/private String poolName;/*** JDBC driver org.h2.Driver*/private String driverClassName;/*** JDBC url 地址*/private String url;/*** JDBC 用户名*/private String username;/*** JDBC 密码*/private String password;
}

3.3 git地址

https://gitee.com/zhc-gitee/dynamic-datasource-springboot-demo

http://www.yayakq.cn/news/68667/

相关文章:

  • 长沙网站优化诊断秦皇岛网站制作哪家好
  • 广州网站设计教程网站开发技术课程设计总结
  • 做淘宝货源网站淄博网站建设找卓迅
  • 深圳住建设局网站公租房网站开发过程中的功能需求分析
  • 汽车行业网站建设方案wordpress copyfeed
  • html电影网站源码网站用什么格式做
  • 网站建设哪里找网站建设运营执行方案
  • wordpress 卡密注册优化技术服务
  • 电子商务毕业设计设计网站建设网络营销推广软件
  • 网站百度收录批量查询wordpress媒体库是空的
  • 医疗网站建设精英wordpress标签订阅插件
  • 浙江做网站公司宁波市国家高新区建设局网站
  • asp.net 开发的网站网站ip pv
  • 关于做网站的外语文献书名网站建设与管理试题与答案
  • 源码网站怎么搭建深圳设计公司有多少家
  • 做自己的免费网站现在出入山西最新规定
  • 杭州做网站的好公司哪家好东营新闻联播在线直播今晚
  • 企业网站建设视频教程外链 网站权重
  • 做资讯类网站需要什么资质深圳的小型网络公司
  • 北京网站建设团队中国建设银行什么是网站用户名
  • 低价网站建设公司网络技术培训内容
  • 如何在社交网站上做视频推广方案创可贴设计网
  • 网页制作培训网站php网站整合discuz
  • 全国网站建设汇编广告设计专业属于什么大类
  • 做网站都需要用到什么广告创意设计作品
  • 发外链软件河北网站seo外包
  • sns社交网站.net源码注册公司去哪个网站
  • 宁波专业建网站外包微软做网站软件
  • 做网站推广要会什么做儿童网站
  • 做旅行社网站多少钱怎么下载网站备案号