- 2021-10-07
少年近视
matlab
Regionprops:用途是getthepropertiesofregion,即用来度量图像区域属性的函数。语法:STATS=regionprops(L,properties)描述:测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。返回值STATS是一个长度为max(L(:))的结构数组
- linux下使用vscode和cmake高效管理c++项目简明教程
zeeq_
UbuntuC++vscodevscodelinuxc++
安装vscode及c++环境配置可以参见:https://blog.csdn.net/fangshuo_light/article/details/123635576 首先,创建工程目录,并在vscode中打开该文件夹,在里面创建如下文件夹:include:用于存放.h文件src:用于存放.cpp文件build:cmake生成文件的存放路径CMakeLists.txt:cmake配置文件
- Python基础 - 发起http请求
shawn.zhang.
pythonjavaajaxjsoncurl
目录[-]1、Python发起http请求#!/usr/bin/envpython#coding=utf-8#licenseremovedfor******importrospyimportpycurlimportStringIOimporturllibfromstd_msgs.msgimportStringimportjsonimporthashlibfromcyber_msgs.msgimpo
- Langchain[6]-LangGraph:异步和流、图可视化、多智能体协作、LCEL代码生成
汀、人工智能
AIAgentlangchainAIAgentLangGraph多智能体协作AI智能体AI大模型Agent框架
Langchain[6]-LangGraph:异步和流、图可视化、多智能体协作、LCEL代码生成1.异步和流因为任何大模型在推理的时候,都会有一定的时间延迟,这是由大模型的底层架构决定的,所以在很多应用,尤其是对话应用中,使用异步以及流式输出,是大幅提升用户体验的较好方法。在langGraph中可以很方便的实现异步和流,简单例子为例:异步调用方法:inputs={"messages"
- 在 Python 中,`typing` 模块提供了类型提示(Type Hints)的功能,可以用来标记变量、函数参数和返回值等的类型,Any, Dict, List, Literal, Optiona
愚昧之山绝望之谷开悟之坡
笔记pythonpython开发语言
在Python中,typing模块提供了类型提示(TypeHints)的功能,可以用来标记变量、函数参数和返回值等的类型。下面是typing模块中几个常用的类型的详细解释和举例。Any类型表示一个可以是任何类型的值,它可以作为变量的类型、函数的参数类型或返回类型等。这个类型通常用于那些无需考虑类型约束,或是需要通过检查变量类型来进行调试的代码中。以下是一个使用Any类型的例子:fromtyping
- Java 中如何使用 SSL 连接 IoTDB
铁头乔
javassliotdb数据库时序数据库开源
问题Java中如何使用SSL连接IoTDB?方案SSL(SecureSocketsLayer)是一种安全协议,用于在网络通信中提供加密、认证和数据完整性保护。它主要用于在互联网上保护数据传输,确保数据在传输过程中不被窃听或篡改。IoTDB支持SSL协议,但是在配置文件中相关参数是默认关闭的状态,如下:#Doesdn_rpc_portenableSSL#effectiveMode:restart#D
- ESP32-S3模组上跑通esp32-camera(30)
蓝天居士
ESP32-S3ESP32-S3camerasensorOV5640
接前一篇文章:ESP32-S3模组上跑通esp32-camera(29)一、OV5640初始化2.相机初始化及图像传感器配置上一回解析完了camera_probe函数的第6段代码,本回继续往下解析该函数后续内容。为了便于理解和回顾,再次贴出camera_probe函数源码,在components/esp32-camera/driver/esp_camera.c中,如下:staticesp_err_
- 简单的基于Spring Cloud和Vue的示例项目结构及部分关键代码
软件职业规划
springspringcloudvue.jsspring
后端(SpringCloud部分)1.创建SpringCloud项目(以SpringCloudGateway和SpringCloudEureka为例)首先,使用SpringInitializr创建一个基础的SpringBoot项目,并添加相关的SpringCloud依赖,比如:spring-cloud-starter-gateway:用于实现API网关功能。spring-cloud-starter
- 从零基础开始实现一个Spring Boot + Vue 项目的详细步骤指南
软件职业规划
springspringbootvue.js后端
一、准备工作1.开发环境搭建安装JDK(JavaDevelopmentKit):前往Oracle官网(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html,以JDK11为例)下载适合你操作系统的JDK安装包,按照安装向导完成安装。安装完成后,配置系统环境变量,确保在命令行中能通过java-version命令查看到正
- elment plus 报错:ElementPlusError: [ElForm] unexpected width 0 at debugWarn (error.ts:13:37)
m0_75101866
前端vue.jsjavascript前端
解决:Vue3警告问题记录二_elementpluserror:[elform]unexpectedwidth0-CSDN博客测试添加label-width依然warning,el-form-item包裹了el-button,拿出来就好了,为其他el-form-item都添加上label-width
- 深入解析华为OD机试:开放日活动“取出尽量少的球”题解及C++、Java、JavaScript、Python详细实现
m0_57781768
华为odc++java
深入解析华为OD机试:开放日活动“取出尽量少的球”题解及C++、Java、JavaScript、Python详细实现在华为OD机试的算法考题中,字符串处理、动态规划、二分查找等算法问题都频繁出现。这不仅是为了考查面试者的算法基础,还要求能够通过高效的逻辑思维解决问题。今天我们将深度分析一道关于“取出尽量少的球”的题目,并通过C++、Java、JavaScript、Python四种编程语言详细解析和
- vue局域网内访问
Simorel
前端vue局域网访问
为了能在公司局域网内访问vue项目需要配置vue项目配置vue.config.jsmodule.exports={devServer:{/**为了在局域网内访问修改host*/host:'0.0.0.0',},};win10配置
- three.js中文字符随机生成旋转动画
一粒马豆
javascriptthree.js中文字符动画
Three.js随机中文字符生成旋转动画body{margin:0;}canvas{display:block;}{"imports":{"three":"https://cdn.jsdelivr.net/npm/
[email protected]/build/three.module.js","three/addons/":"https://cdn.jsdelivr.net/npm/
[email protected]
- Ubuntu系统如何快速访问github
经纬数智
Linuxubuntugithub
ubuntu系统下,常常因为国内网络原因无法访问github官网或者也无法使用使用gitclone指令,搭建梯子又过于复杂,可使用修改hosts文件,添加IP地址的方法改进。修改Hosts文件:1.打开DNS查询网站:DNS查询。2.输入github域名:http://github.com,点击检测。3.选择合适的IP地址,复制。4.将IP地址复制到Hosts文件中。#打开Hosts文件sudog
- Commander 一款命令行自定义命令依赖
yqcoder
arcgisjavascript前端node.js
一、安装`commander`插件npminstallcommander二、基本用法1.创建一个简单的命令行程序创建一个JavaScript文件,例如`mycli.js`,并添加以下代码://引入`commander`模块并获取`program`对象。const{program}=require("commander");program .version("1.0.0")//设置命令行工具的版本
- Python中的HTTP请求:从菜鸟到高手的全面指南
傻啦嘿哟
pythonhttp开发语言
目录一、HTTP请求基础知识二、Python中的HTTP请求库安装requests库使用requests库发送HTTP请求GET请求POST请求PUT请求DELETE请求三、处理HTTP响应获取状态码获取响应头获取响应体四、高级技巧与实践使用连接池设置请求头处理Cookies和Session错误处理设置超时时间使用代理HTTP认证五、高级功能与实践自定义请求头文件上传流式响应处理重定向SSL证书验
- 【2024年华为OD机试】 (A卷,200分)- 开放日活动、取出尽量少的球(JavaScript&Java & Python&C/C++)
妄北y
算法汇集笔记总结(保姆级)华为odjavascriptjavac语言python
一、问题描述题目描述某部门开展FamilyDay开放日活动,其中有个从桶里取球的游戏,游戏规则如下:有N个容量一样的小桶等距排开。每个小桶默认装了数量不等的小球,记录在数组bucketBallNums中。游戏开始时,要求所有桶的小球总数不能超过SUM。如果小球总数超过SUM,则需对所有小桶统一设置一个容量最大值maxCapacity,并将超过容量最大值的小球拿出来,直至小桶里的小球数量小于maxC
- vue 无法 局域网内访问
m0_75101866
开发工具vue.js
资料Vue项目设置可以局域网访问_vue.js_脚本之家过程上午,前端vue服务能够在局域网内访问,下午就不行了,但是后端服务能够正常访问,本机也能正常访问ip:端口号前端服务判定不是下面的问题:同一局域网下访问vue项目_vue在局域网内访问-CSDN博客然后,关闭防火墙尝试。。-_-!netshadvfirewallfirewalladdrulename="Allow8080"dir=inac
- springboot配置文件与注解
xiaobai_cpp
javaspringboot后端java
文章目录配置注解@SpringBootApplication:@Configuration@EnableAutoConfiguration:@ComponentScan:@Value:@ConfigurationProperties:@PropertySource:@Conditional及其派生注解(如@ConditionalOnClass、@ConditionalOnBean等):配置注解
- Element table 表头吸顶效果(适用于表头无fixed属性使用)
阳光的男夹克
Vue2javascript开发语言ecmascript
在main.js自定义sticky指令Vue.directive('sticky',{//当被绑定的元素插入到DOM中时……inserted(el,binding){//获取表格constthead=el.children[1]consttbody=el.children[2]//获取滚动元素constscrollParent=document.querySelector(binding.valu
- vue 前端显示图片加token_手摸手,带你用vue撸后台 系列二(登录权限篇)
weixin_39562579
vue前端显示图片加tokenvue本地存储vue编辑页面和新增
完整项目地址:vue-element-adminhttps://github.com/PanJiaChen/vue-element-admin前言拖更有点严重,过了半个月才写了第二篇教程。无奈自己是一个业务猿,每天被我司的产品虐的死去活来,之前又病了一下休息了几天,大家见谅。进入正题,做后台项目区别于做其它的项目,权限验证与安全性是非常重要的,可以说是一个后台项目一开始就必须考虑和搭建的基础核心功
- C/C++传递变参回调函数的使用
tiger1334
#includeint(*fp)(inta,intb);intadd(inta,intb){return(a+b);}intsub(inta,intb){return(a-b);}intcaller(int(*fp)(inta,intb),intm,intn){returnfp(m,n);//这里如何传递不同的参数?}intmain(void){inti=0;fp=add;i=caller(fp,
- Vite + Vue3 + TS项目配置前置路由守卫
洛*璃
Vue.jsvue.js前端javascriptVue-RouterPiniatypescript
在现代前端开发中,使用Vue3和TypeScript的组合是一种流行且高效的开发方式。Vite是一个极速的构建工具,可以显著提升开发体验。本文博主将指导你如何在Vite+Vue3+TypeScript项目中配置前置路由守卫(NavigationGuards)。前置条件在开始配置项目前置路由守卫前,博主希望你能够先达成以下前置条件:1.完成Vue3前端项目搭建:Vite创建Vue3+TS项目2.引入
- python程序发钉钉消息
乌11111
python
参考:使用python通过接口方式发送钉钉消息分两步:1.在钉钉群---智能群助手里添加机器人,拿到webhook链接,设置关键词。2.写python代码,用requests请求接口的方式。参考代码和实现结果如下。#python发钉钉消息importjson,requestsdefsendDing(msg):dingding_url='https://oapi.dingtalk.com/robot
- 字符串算法笔记
骑狗看夕阳
算法笔记算法笔记
字符串笔记说到字符串,首先我们要注意的就是字符串的输入以及输出,因为字符串的输入格式以及要求也分为很多种,我们就来说几个比较常见的格式getsgetsgets我们先来说这个函数的含义ÿ
- 学习TypeScript(一)
家里有只小肥猫
学习typescriptjavascript
Ts静态类型可以直接在编译器进行类型检查js动态类型在代码执行期的时候才会进行类型检查好处优势程序中任何位置的代码都会有错误提示,避免浪费时间提高维护性让代码重构更容易只需要修改类型就可以全局安装打开cmd电脑全局安装npmi-gtypescript检查是否安装成功tsc-vTypeScript入门教程1.安装TypeScriptnpminstall-gtypescript2.创建TypeScri
- el-table表格单行表头
Is无糖
vue.js前端javascript
最近开发项目遇到一个订单列表展示的需要在每一行表头上进行订单的某些操作和数据展示如图:表格一般我都是使用elementui的el-table正常使用肯定是不能满足这个效果想了想也是有点思绪便做了一个demo记录一下效果图:父组件代码:importchilTabelfrom'./components/chilTable.vue';exportdefault{data(){return{tableDa
- .NET 7迁移后OutOfMemoryException的解决之旅
t0_54coder
编程问题解决手册个人开发
引言最近,我们将应用从.NET5升级到了.NET7,并将UI框架从标准MVC升级到了Vue3。升级后,一切看起来都运行良好,但仅仅一周后,我们开始遇到了令人困惑的System.OutOfMemoryException。这些异常出现在代码库的不同、看似无关的部分,而这些部分并不总是处理大量数据。这篇博客将详细记录我们如何解决这些内存异常的问题。问题描述在迁移到.NET7后,我们开始频繁地看到Syst
- Vue2.0+ElementUI实现查询条件展开和收起功能组件
热忱1128
elementui前端javascript
一、需求el-form如果查询条件过多,影响页面的展示效果。查询条件表单是我们系统中非常常见的功能,我们需要把它封装成一个通用的组件,方便在系统开发中提升开发效率。除了在实现基本查询条件的功能上,还需要实现多条件的折叠和展开功能二、效果图三、代码示例封装查询条件表单组件SearchButton.vue查询重置{{word}}exportdefault{props:{showAll:{type:Bo
- JHipster入门 - 生成单体架构的应用
yorkwu1977
软件工程架构
JHipster入门-生成单体架构的应用目标准备工作生成基础功能输入指令开始问答环节问答环节结束,开始自动生成基础功能代码生成业务功能输入指令开始问答环节问答环节结束,开始自动生成业务功能代码调试启动启动后端服务启动前端服务访问前端页面打包启动构建启动访问前端页面关于数据库交给JHipster自己启动目标30分钟内生成一个开箱即用的单体架构应用。生成SpringBoot后端代码和Vue前端代码。基
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数