- react中的useContext--为什么使用(一)
咖啡虫
Reactreact.js前端前端框架
React的数据传递流程在React中,数据传递通常是自上而下的,也就是父组件把数据通过props传递给子组件,子组件无法直接修改父组件的数据。例子:父组件向子组件传递数据constParent=()=>{constuser={name:"John",age:24};return;};constChild=({user})=>{return(姓名:{user.name}年龄:{user.age})
- React:Axios、Fetch-Jsonp获取API接口数据
今天也很棒棒~
Reactreact.jsjavascriptjson
不同模块可登录npm,搜索对应方法有官方文档https://www.npmjs.com/Axios步骤:{/*axios1.npminstallaxios--save安装axios模块2.importaxiosfrom'axios';3.varapi='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20';//接口后台允许了
- 前端React篇之哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么?
m0_74823705
前端react.jsjavascript
目录哪些方法会触发React重新渲染?重新渲染render会做些什么?setState()案例需求总结forceUpdate()案例需求总结props改变案例需求总结context改变案例需求总结哪些方法会触发React重新渲染?重新渲染render会做些什么?在React中,以下方法会触发重新渲染:setState():当调用组件的setState方法并传入新的状态值时,React会触发重新渲染
- React基础之useState
青红光硫化黑
react.jsjavascript前端
useState是一个ReactHook(函数),它允许我们向组件添加一个状态变量,从而控制组件的渲染效果import{useState}from"react"//使用useState实现计数器按钮functionApp(){//count是状态变量setcount是修改变量的方法const[count,setCount]=useState(0)//点击事件回调consthandleClick=(
- React 基础教程
阿贾克斯的黎明
前端react.js前端前端框架
目录React基础教程一、React简介二、安装和设置三、创建第一个React组件(一)函数式组件(二)类组件四、渲染组件五、组件的属性和状态(一)属性(Props)(二)状态(State)六、组件的生命周期方法七、事件处理八、总结React是一个用于构建用户界面的JavaScript库。它以高效、灵活和可维护性而受到广泛的欢迎。本教程将介绍React的基础知识,帮助你快速上手React开发。一、
- React基础教程(06):条件渲染
叁拾舞
React教程react.js前端前端框架
1条件渲染使用条件渲染,结合TodoList案例,进行完善,实现以下功能:当列表中的数据为空的时候,现实提示信息暂无待办事项当列表中存在数据的时候,提示信息消失这里介绍三种实现方式。注意这里的Empty是前端框架Antd的组件,如果安装了antd直接使用即可,如果没有安装可以用div代替也是可以的。这里为了更直观,所以使用了前端框架antd的Empty组件。1、三元操作符{/*方式一*/}{thi
- React 脚手架开发初下载使用规则
大白话程序猿
javascriptreactjshtmlhtml5
人嘛,总要是进步的,不然可就跟不上社会的脚步了接下来我们正式的进入我们react脚手架的环节首先我们需要下载这个react脚手架npmicreate-react-app-gnpm老生长谈的问题了这里我们是-g也就是全局下载,为了我们使用方便已经开始下载了,经历几分钟漫长的等待我们就可以使用脚手架了下载完毕之后,我们就可以创建我们的第一个项目了创建一个名为firstapp的项目操作指令create-
- 动画 + 大白话讲清楚React渲染原理
梅花十三儿
react.js前端javascript
前言相信很多人跟我之前一样,看到源码两个字觉得触不可及,觉得离自己还很遥远,是需要非常多年的工作经验的大佬才能触及到的领域。就在去年我改变了这个想法,当时被react的几个生命周期执行顺序弄的睡不着觉,为什么有些时候生命周期的执行事与愿违?又为什么数组中必须要加上key属性?为啥在render中不能写setState等等问题…在一系列的问题中,我终于还是打开了那份久违的源码,并且Ctrl+F慢慢探
- # React源码解析之Reconciler运行循环与scheduler调度
Bug程序员枯港
后端
React源码之看完吊打面试官系列经历一个月的学习整理,站在前人的肩膀上,对React有了一些浅薄的理解,希望记录自己的学习过程的同时也可以给大家带来一点小帮助。如果此系列文章对您有些帮助,还望在座各位义夫义母不吝点赞关注支持,也希望各位大佬拍砖探讨本系列行文思路如下,本篇属于React中的React的管理员(reconciler与scheduler)[X]React启动过程[X]React的两大
- 【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】
再见孙悟空_
AI进阶之旅》langchainLangChain技术LangChain输出解析器人工智能langchain官方工具Agent案例2
一、ReActAgent是啥?为什么说它比「普通AI」聪明?想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReActAgent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。举个真实案例(参考官方代码改的):fromlangchain.agentsimportTool,init
- 大白话react第十五章React 应用性能优化深度实践
IT木昜
大白话reactreact.js前端前端框架
大白话react第十五章React应用性能优化深度实践1.React服务端渲染(SSR)的深入运用白话解释:之前咱们做的网页大多是在浏览器里把页面一点点搭建起来,这得花点时间。服务端渲染呢,就是让服务器提前把网页组装好,直接发给浏览器,这样页面打开的速度就快多啦,用户体验也更好。代码示例:用Next.js这个框架来做服务端渲染。Next.js是基于React的,能很方便地实现服务端渲染。//pag
- vue3与react、 react hooks
caihuayuan5
面试题汇总与解析springbootjava后端大数据课程设计
一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数、生命周期钩子、自定义hooks函数、toRef和toRefs、shallowReactive与shallowRef、readonly与shallowReadonly、toRaw与markRaw、customRef、provide与inject、Fragment、Teleport、Su
- React生态、Vue生态与跨框架前端解决方案
Coder LM Wang
JavaScript前端react.jsvue.js
React生态系统1基础框架React.js是一个用于构建UI的JavaScript库。2应用框架Next.js是基于React.js的完整应用框架。主要负责应用如何工作:应用架构:路由系统、页面结构渲染策略:服务端渲染(SSR)、静态生成(SSG)、客户端渲染性能优化:代码分割、图片优化、字体优化开发体验:热模块替换、TypeScript支持部署:Vercel平台集成、自托管选项3UI组件库MU
- React + TypeScript + Axios + Ant Design + JSON Server 实现 TodoList 效果
碧海蓝天·
react.jstypescriptjsonJavaScript
在本篇文章中,我们将使用React、TypeScript、Axios、AntDesign和JSONServer来实现一个简单的TodoList应用。我们将使用React来构建用户界面,TypeScript来提供静态类型检查,Axios来进行与后端的HTTP请求交互,AntDesign来美化界面,而JSONServer则用于模拟后端数据。在开始之前,请确保你已经安装了Node.js和npm(或者使用
- (一)React 基础
小刀肉0812
Reactreact.js前端前端框架
专栏持续更新中~~目录目录一、React介绍1.1什么是React1.2React的特点1.3ReactVSVueVSAngular1.基本概述2.语法和核心概念对比2.1组件语法2.1.1React组件2.1.2Vue组件2.1.3Angular组件2.2数据绑定2.2.1React(单向数据流)2.2.2Vue(双向数据绑定)2.2.3Angular(双向数据绑定)2.3事件绑定3.性能对比4
- 使用 vxe-table 实现复选框分页跨页勾选
vue.js
vxe-table实现复选框分页跨页勾选官网:https://vxetable.cn当使用数据分页与复选框多页勾选时,可以通过checkbox-config.reserve启用获取已选import{ref,reactive}from'vue'import{VxeUI}from'vxe-table'constgridRef=ref()constallList=[{id:10001,name:'Tes
- vue vxe-table 实现财务记账凭证
vue.js
使用vxe-table实现财务记账凭证非常简单,实现在线实时编辑的记账凭证、自动合计金额等官网:https://vxetable.cn/新增保存财务主管:小徐记账:张三出纳:李四审核:老六import{ref,reactive,nextTick}from'vue'import{VxeUI}from'vxe-table'importXEUtilsfrom'xe-utils'constgridRef=
- React 19 更新总结
软萌小雲
react.js前端javascript
12月6日,React19正式发布,本文简单总结该版本都带来了那些更新!React19更新详情:https://react.dev/blog/2024/12/05/react-19Actions:useActionStateHook:接受一个函数(Action),返回包装后的Action供调用,调用时返回结果和等待状态,用于简化常见的Actions场景处理。useOptimisticHook:在执
- React 19 即将迎来大更新!
程序员白特
前端学习笔记react.jsjavascript前端
公众号:程序员白特,欢迎一起交流学习~近日,React团队发布消息称,不会再发布v18.3版本了,而是将重点放在Reactv19版本。新版本将推出四个新的hook,旨在解决React中痛点:数据获取表单处理虽然这些hook目前作为实验性API在React预览版本中可用,但它们预计将成为React19的稳定功能,但是最终发布Reactv19之前,API可能会有所变化。新的Hooks包括:useuse
- react项目中使用react-router-dom实现路由集中管理和跳转
Beiyux
Reactnode.jsreact.jsjavascript
前言在react后台管理系统中使用router相关插件完成路由的集中管理和跳转,在这里记录一下实现过程下载react-router-domcnpmi-Dreact-router-dom在nav组件中去写功能代码//nav的index.js中import{Link}from'react-router-dom'{item.title}
- React项目开发过程中需要注意避免re-render——React性能优化方案
winne雪
React前端性能优化React性能优化useMemomemoreacthook
前言下面相关测试例子我都写在了仓库中,可以直接拿来调试。首先我们要知道哪些方法会触发react组件的重新渲染(默认情况下)?1、setState方法被调用(hook中是useState中的setXXXX方法被调用)组件就会触发render,除了设置state为null的情况不会触发render。注意注意!!上面说的是方法被调用就会re-render,而不指的是state数据发生改变才会re-ren
- 标题:打造现代Web体验:React-Swipeable深度解析与应用指南
邬筱杉Lewis
标题:打造现代Web体验:React-Swipeable深度解析与应用指南项目地址:https://gitcode.com/gh_mirrors/re/react-swipeable项目介绍React-Swipeable是一个由FormidableLabs开发的出色开源库,它提供了一个基于React的钩子函数,用于处理滑动事件。这个库特别适用于创建交互式的移动应用或网站,让用户通过滑动手势进行操作
- 使用指南:react-facebook-pixel开源项目深度探索
梅研芊
使用指南:react-facebook-pixel开源项目深度探索react-facebook-pixelReactJSwrapperforFacebook'sPixel项目地址:https://gitcode.com/gh_mirrors/re/react-facebook-pixel1.项目目录结构及介绍react-facebook-pixel是一个专为React应用程序设计的库,用于轻松集成
- React正式更新!开始学习React 19!
BigYe程普
React进阶技术reactjsreact
本文为原创文章,原文链接:J实验室,未经授权请勿转载今年2月份,React发布消息确认今年发布v19版本,尘封两年的版本号终于要更新了(详情点击:React19发布在即,抢先学习一下新特性)。那时候,React成员AndrewClark明确了新版本将在3月或4月发布。要不怎么说「DDL是第一生产力」,这不4月底了,新版本就踩点发布了。这次发布的版本号是19.0.0-Beta。虽然只是Beta版,但
- 大白话react第十三章高阶 React 组件开发和React 状态管理进阶等
IT木昜
大白话reactreact.jsjavascript前端
大白话react第十三章1.高阶React组件开发白话解释:咱们之前做的组件就像普通的积木,而高阶组件呢,就像是能把普通积木重新组合、改造的超级积木盒。它能接收一个组件作为参数,然后返回一个新的组件,能帮我们复用代码、增强组件功能。代码示例://定义一个高阶组件,它接收一个组件作为参数//这个高阶组件的作用是给传入的组件添加一个title属性functionwithTitle(WrappedCom
- React Native 源码分析(一)——启动流程
薛瑄
ReactNativereactnative源码分析
本系列文章,是分析Android的ReactNative的源码,主要包括以下文章,和以往的源码系列一样,分析主流程的代码,不会细致到每一行(但相比上一篇的Gradle源码分析,要细致很多),会涉及到java、C++、js等源码。前三篇RN版本是0.64.0,后面是0.72.01、ReactNative源码分析(一)——启动流程2、ReactNative源码分析(二)——NativeModules桥
- react精简面试题
懒人村杂货铺
react.js前端前端框架
一、React基础1.React的核心特性是什么?答案:组件化开发:将UI拆分为独立可复用的组件。虚拟DOM(VirtualDOM):通过内存中的轻量级DOM结构优化真实DOM操作。单向数据流:数据通过props从父组件传递到子组件,状态变化可预测。JSX:允许在JavaScript中编写类似HTML的语法,增强代码可读性。2.类组件和函数组件的区别?答案:类组件:使用class定义,继承Reac
- 【智能体Agent】ReAct智能体的实现思路和关键技术
星星点点洲
LangChain开发过程langchain
基于ReAct(Reasoning+Acting)框架的自主智能体importrefromtypingimportList,Tuplefromlangchain_community.chat_message_histories.in_memoryimportChatMessageHistoryfromlangchain_core.language_models.chat_modelsimportB
- 聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)
Java小海.
java开发语言后端程序人生springboot
本系列Netty源码解析文章基于4.1.56.Final版本在上篇文章《聊聊Netty那些事儿之从内核角度看IO模型》中我们花了大量的篇幅来从内核角度详细讲述了五种IO模型的演进过程以及ReactorIO线程模型的底层基石IO多路复用技术在内核中的实现原理。最后我们引出了netty中使用的主从ReactorIO线程模型。通过上篇文章的介绍,我们已经清楚了在IO调用的过程中内核帮我们搞了哪些事情,那
- React Native v0.78 更新
Mr.NickJJ
ReactNative系列reactnativereact.jsjavascript
这个版本在ReactNative中引入了React19,并带来了一些重要的新功能,例如Android矢量图(VectorDrawables)的原生支持以及iOS更好的Brownfield集成。亮点React19集成更小更快的发布节奏可选择在Metro中启用JavaScript日志新增对AndroidXMLDrawables的支持iOS上的ReactNativeFactory这个版本为开发者带来了更
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数