- lua每日tips
yiduoyun_demo
其他luajunit开发语言
目录1,EC618系列不支持win7下刷机2,为何室内无法gps定位3,Lot平台自动锁定4,LuaTools的部分操作界面是支持拖拽功能的5,Air780E省略1,EC618系列不支持win7下刷机1,EC618系列不支持win7下刷机EC618系列,例如Air780E/Air780EG/Air600E/Air700E,均不支持Win7环境下的刷机这是无法解决的问题,请升级到Win10.若使用M
- Air780E开发板CSDK环境搭建与helloworld
IOT趣制作
gitgithubvscode嵌入式硬件
一、环境搭建硬件准备:Air780E最小板、type-c数据线软件准备:Git:用于获取LuatOS源码,小伙伴可自行百度安装与配置方法Xmake:用于完成代码编译,下载与安装步骤参考官方链接:[合宙文档教程:Xmake]Luatools:用于完成程序烧录,下载与安装步骤参考官方链接:[合宙开发工具下载:Luatools]VSCode:用于完成代码编辑(后续使用LuatIDE时也会用到)下载与安装
- LuatOS-SOC接口文档(air780E)--rtc - 实时时钟
l531798151
air780Eair780E
rtc.set(tab)设置时钟参数传入值类型解释tableorint时钟参数,见示例返回值返回值类型解释bool成功返回true,否则返回nil或false例子rtc.set({year=2021,mon=8,day=31,hour=17,min=8,sec=43})--目前只有Air101/Air103/Air105/EC618系列支持时间戳方式rtc.set(1652230554)rtc.g
- 合宙Air780E|FTP|内网穿透|命令测试|LuatOS-SOC接口|官方demo|学习(18):FTP命令及应用
打酱油的工程师
LuatOS-SOC接口学习国产mcuftp内网穿透物联网
目录1、FTP服务器准备2、FTPDemomain.c代码及解析:LOG文件:PS:ftp-ftp客户端函数说明待解决问题:1、FTP服务器准备本机为win11系统,利用IIS搭建FTP服务器。搭建方式可参考博文:windows系统搭建FTP服务器教程windows系统搭建FTP服务器教程_程序员路遥的博客-CSDN博客_windows服务器安装ftp设置完成后,测试FTP(已正常访问,测试ls列
- LuatOS-SOC接口文档(air780E)--rtos - RTOS底层操作库
l531798151
air780Eair780E
rtos.receive(timeout)接受并处理底层消息队列.参数传入值类型解释int超时时长,通常是-1,永久等待返回值返回值类型解释msgid如果是定时器消息,会返回定时器消息id及附加信息,其他消息由底层决定,不向lua层进行任何保证.例子无rtos.timer_start(id,timeout,_repeat)启动一个定时器参数传入值类型解释int定时器idint超时时长,单位毫秒in
- LuatOS-SOC接口文档(air780E)--repl - “读取-求值-输出” 循环
l531798151
air780Eair780E
示例--[[本功能支持的模块及对应的端口模块/芯片端口波特率及其他参数Air101/Air103UART09216008None1Air105UART015000008None1ESP32C3UART09216008None1--注意,简约版(无CH343)不支持ESP32C2UART09216008None1ESP32S2UART09216008None1Air780E虚拟串口任意--暂不支持从
- LuatOS-SOC接口文档(air780E)--rsa - RSA加密解密
l531798151
air780Eair780E
示例--请在电脑上生成私钥和公钥,当前最高支持4096bit,一般来说2048bit就够用了--opensslgenrsa-outprivkey.pem2048--opensslrsa-inprivkey.pem-pubout-outpublic.pem--privkey.pem是私钥,public.pem是公钥--私钥用于加密和签名,通常保密,放在服务器端--公钥用于解密和验签,一般可公开,放在
- LuatOS-SOC接口文档(air780E)--pin - 管脚命名映射
l531798151
air780Eair780E
示例--这个库是为了解决文本形式的PIN脚命名与GPIO编号的映射问题--功能实现上,pin.PA01就对应数值1,代表GPIO1,丝印上对应PA01--PA12,GPIO12,设置为输出,而且低电平.gpio.setup(12,0)gpio.setup(pin.PA12,0)--推荐使用gpio.setup(pin.get("PA12"),0)--不推荐,太长^_^--只有部分BSP有这个库,E
- LuatOS-SOC接口文档(air780E)--pm - 电源管理
l531798151
air780Eair780E
示例--[[休眠模式简介--IDLE正常运行模式--LIGHT轻睡眠模式:CPU暂停RAM保持供电定时器/网络事件/IO中断均可自动唤醒唤醒后程序继续运行GPIO保持电平--DEEP深睡眠模式CPU暂停核心RAM掉电,保留RAM维持供电普通GPIO掉电,外设驱动掉电AON_GPIO保持休眠前的电平dtimer定时器可唤醒wakeup脚可唤醒唤醒后程序从头运行,休眠前的运行时数据全丢--HIB休眠模
- LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码
l531798151
air780Eair780E
示例--加载pb文件,这个是从pbtxt转换得到的--转换命令:protoc.exe-operson.pb--cpp_out=cppperson.pbtxt--protoc.exe下载地址:https://github.com/protocolbuffers/protobuf/releasesprotobuf.load(io.readFile("/luadb/person.pb"))localtb
- LuatOS-SOC接口文档(air780E)--pwm - PWM模块
l531798151
air780Eair780E
pwm.open(channel,period,pulse,pnum,precision)开启指定的PWM通道参数传入值类型解释intPWM通道int频率,1-1000000hzint占空比0-分频精度int输出周期0为持续输出,1为单次输出,其他为指定脉冲数输出int分频精度,100/256/1000,默认为100,若设备不支持会有日志提示返回值返回值类型解释boolean处理结果,成功返回tr
- LuatOS-SOC接口文档(air780E)--otp - OTP操作库
l531798151
air780Eair780E
otp.read(zone,offset,len)#读取指定OTP区域读取数据参数传入值类型解释int区域,通常为0/1/2/3,与具体硬件相关int偏移量int读取长度,单位字节,必须是4的倍数,不能超过4096字节返回值返回值类型解释string成功返回字符串,否则返回nil例子localotpdata=otp.read(0,0,64)ifotpdatathenlog.info("otp",o
- LuatOS-SOC接口文档(air780E)--pack - 打包和解包格式串
l531798151
air780Eair780E
pack.unpack(string,format,init)解包字符串参数传入值类型解释string需解包的字符串string格式化符号‘’:设为大端编码‘=’:大小端遵循本地设置‘z’:空字符串‘p’:byte字符串‘P’:word字符串‘a’:size_t字符串‘A’:指定长度字符串‘f’:float‘d’:double‘n’:Luanumber‘c’:char‘b’:byte=unsign
- LuatOS-SOC接口文档(air780E)--os - os操作
l531798151
air780Eair780E
os.remove(path)#移除文件参数传入值类型解释string待移除的文件完整路径返回值返回值类型解释bool成功返回true,其他情况返回nilstring失败时返回原因字符串例子--删除根目录下的某个文件os.remove("/1.txt")--注意,线刷时的文件,一般在/luadb目录,这个目录下的文件是只读的--也就是无法执行os.remove("/luadb/xxx.bin")o
- LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)
l531798151
air780Eair780E
示例--本库当前支持Air101/Air103/ESP32/ESP32C3/ESP32S3--用法请查阅demo,API函数会归于指定的模式--名称解释:--peripheral外设模式,或者成为从机模式,是被连接的设备--central中心模式,或者成为主机模式,是扫描并连接其他设备--ibeacon周期性的beacon广播--UUID设备的服务(service)和特征(characterist
- LuatOS-SOC接口文档(air780E)--nes - nes模拟器
l531798151
air780Eair780E
nes.init(file_path)#nes模拟器初始化参数传入值类型解释stringfile_path文件路径返回值返回值类型解释bool成功返回true,否则返回false例子nes.init("/luadb/super_mario.nes")nes.key(key,val)nes模拟器初始化参数传入值类型解释numberkey按键numberval状态1按下0抬起返回值返回值类型解释boo
- LuatOS-SOC接口文档(air780E)--nbiot - NB-IOT操作库
l531798151
air780Eair780E
nbiot.isReady()#网络是否就绪参数无返回值返回值类型解释boolean已联网返回true,否则返回false例子--判断是否已经联网ifnbiot.isReady()thenlog.info("nbiot","netisready")endnbiot.imsi()读取IMSI参数无返回值返回值类型解释string返回IMSI值,如果不存在就返回nil例子--读取imsilog.inf
- LuatOS-SOC接口文档(air780E)--mobile - 蜂窝网络
l531798151
air780Eair780E
示例--简单演示log.info("imei",mobile.imei())log.info("imsi",mobile.imsi())localsn=mobile.sn()ifsnthenlog.info("sn",sn:toHex())endlog.info("muid",mobile.muid())log.info("iccid",mobile.iccid())log.info("csq",
- LuatOS-SOC接口文档(air780E)--mqtt - mqtt客户端
l531798151
air780Eair780E
常量常量类型解释mqtt.STATE_DISCONNECTnumbermqtt断开mqtt.STATE_SCONNECTnumbermqttsocket连接中mqtt.STATE_MQTTnumbermqttsocket已连接mqtt连接中mqtt.STATE_READYnumbermqttmqtt已连接mqttc:subscribe(topic,qos)订阅主题参数传入值类型解释string/t
- LuatOS-SOC接口文档(air780E)--miniz - 简易zlib压缩
l531798151
air780Eair780E
示例--准备好数据localbigdata="123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw"--压缩之,压缩得到的数据是zlib兼容的,其他语言可通过zlib相关的库进行解压localcdata=miniz.compress(bigdata)--lua的字符串相当于有长度的char[],可存放包括0x00的一切数据
- LuatOS-SOC接口文档(air780E)--mlx90640 - 红外测温(MLX90640)
l531798151
air780Eair780E
常量#常量类型解释mlx90640.FPS1HZnumberFPS1HZmlx90640.FPS2HZnumberFPS2HZmlx90640.FPS4HZnumberFPS4HZmlx90640.FPS8HZnumberFPS8HZmlx90640.FPS16HZnumberFPS16HZmlx90640.FPS32HZnumberFPS32HZmlx90640.FPS64HZnumberFPS
- LuatOS-SOC接口文档(air780E)--mcu - 封装mcu一些特殊操作
l531798151
air780Eair780E
常量常量类型解释mcu.UARTnumber外设类型-串口mcu.I2Cnumber外设类型-I2Cmcu.SPInumber外设类型-SPImcu.PWMnumber外设类型-PWMmcu.GPIOnumber外设类型-GPIOmcu.I2Snumber外设类型-I2Smcu.LCDnumber外设类型-LCDmcu.CAMnumber外设类型-CAMmcu.setClk(mhz)设置主频,单位
- LuatOS-SOC接口文档(air780E)--max30102 - 心率模块
l531798151
air780Eair780E
max30102.init(i2c_id,int)#初始化MAX30102传感器参数传入值类型解释int传感器所在的i2c总线id,默认为0intint引脚返回值返回值类型解释bool成功返回true,否则返回nil或者false例子ifmax30102.init(0,pin.PC05)thenlog.info("max30102","initok")elselog.info("max30102"
- LuatOS-SOC接口文档(air780E)--lvgl - LVGL图像库
l531798151
air780Eair780E
lvgl.draw_mask_radius_param_t()创建一个lv_draw_mask_radius_param_t参数无返回值返回值类型解释userdatalv_draw_mask_radius_param_t指针例子localradius=lvgl.draw_mask_radius_param_t()lvgl.draw_mask_radius_param_t_free(radius)释
- LuatOS-SOC接口文档(air780E)--lora2 - lora2驱动模块(支持多挂)
l531798151
air780Eair780E
常量常量类型解释lora2.SLEEPnumberSLEEP模式lora2.STANDBYnumberSTANDBY模式lora2.init(ic,loraconfig,spiconfig)lora初始化参数传入值类型解释stringlora型号,当前支持:llcc68sx1268tablelora配置参数,与具体设备有关返回值返回值类型解释userdata若成功会返回lora对象,否则返回nil
- LuatOS-SOC接口文档(air780E)--log - 日志库
l531798151
air780Eair780E
常量常量类型解释log.LOG_SILENTnumber无日志模式log.LOG_DEBUGnumberdebug日志模式log.LOG_INFOnumberinfo日志模式log.LOG_WARNnumberwarning日志模式log.LOG_ERRORnumbererror日志模式log.setLevel(level)设置日志级别参数传入值类型解释stringlevel日志级别,可用字符串或
- LuatOS-SOC接口文档(air780E)--lora - lora驱动模块
l531798151
air780Eair780E
常量常量类型解释lora.SLEEPnumberSLEEP模式lora.STANDBYnumberSTANDBY模式lora.init(ic,loraconfig,spiconfig)lora初始化参数传入值类型解释stringlora型号,当前支持:llcc68sx1268tablelora配置参数,与具体设备有关返回值无例子lora.init("llcc68",{id=0,--SPIidcs=
- LuatOS-SOC接口文档(air780E)--libgnss - NMEA数据处理
l531798151
air780Eair780E
示例--提醒:本库输出的坐标,均为WGS84坐标系--如需要在国内地图使用,要转换成对应地图的坐标系,例如GCJ02BD09--相关链接:https://lbsyun.baidu.com/index.php?title=coordinate--相关链接:https://www.openluat.com/GPS-Offset.html--方案1,经lua层进行数据中转uart.setup(2,115
- LuatOS-SOC接口文档(air780E)--libcoap - coap数据处理
l531798151
air780Eair780E
libcoap.new(code,uri,headers,payload)创建一个coap数据包参数传入值类型解释intcoap的code,例如libcoap.GET/libcoap.POST/libcoap.PUT/libcoap.DELETEstring目标URI,必须填写,不需要加上/开头table请求头,类似于http的headers,可选string请求体,类似于http的body,可选
- LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块
l531798151
air780Eair780E
常量常量类型解释lcd.font_opposansm8font8号字体lcd.font_unifont_t_symbolsfont符号字体lcd.font_open_iconic_weather_6x_tfont天气字体lcd.font_opposansm10font10号字体lcd.font_opposansm12font12号字体lcd.font_opposansm16font16号字体lcd
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数