- JAVA源码分析:上位机SECS协议的进制转换在半导体行业的应用 JAVA SECS通信 JAVA与SECS集成资料大全JAVA开发SECS快速入门资料,SECS S7F19 S7F23 工艺程序
花仙子166
JAVAjava集成secs资料springbootSECSjava开发SECS实战项目java开发SECS资料大全java开发secs源码
Java与SECS基础通信Java实现SECS指令S2F17获取时间Java实现SECS指令S10F3终端单个显示例子Java实现SECS指令S5F1报警/取消报警上传实例源码及DEMO请查阅这个演示的内容是JAVA集成SECS的工艺管理,假如这个工艺只要求管理两个参数湿度、温度信息。以下内容就具体使用JAVA与SECS通信,指令内容为S7F19S7F23S7F25JAVA开发SECS快速入门资料
- 【置顶】 本博博文汇总
baiiu
AndroidJava性能优化等音视频安卓
文章目录前言音视频ijkplayer源码分析FFmpeg、音视频协议Andriod系统音视频框架C、C++Android&Java源码分析、绘制、渲染Dalvik、Art虚拟机Java并发计算机基础操作系统计算机网络设计模式、数据结构、算法前言23年底了,想来也工作十年,也一直在csdn输出。这十年,从业务层做到性能优化,再到音视频,再到播放器稳定性相关的nativecrash。这十年,也积累了不
- Java源码分析:Guava之不可变集合ImmutableMap的源码分析
朱季谦
Javajavaguava开发语言
原创/朱季谦一、案例场景遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样——publicstaticfinalMapdayMap=newHashMapdayMap=ImmutableMap.builder().put("Monday","今天上英语课").put("Tuesday","今天上语文课").put("Wednesday","今天上数学课
- Java源码分析(一)Integer
heart荼毒
Javajava开发语言
当你掌握Java语言到了一定的阶段,或者说已经对Java的常用类和API都使用的行云流水。你会不会有一些思考?比如,这个类是如何设计的?这个方法是怎么实现的?接下来的一系列文章,我们一起学习下Java的一些常见类的源码。本篇,一起分析下Integer的源码。目录一、两道Integer的题目二、Integer类图三、String转int1、Integer.parseInt2、Integer.valu
- Java代码检查和bug分析工具
酷鱼影子
工具使用PMDFindBugsCheckstyle代码检查bug分析
这里列出了3种Java静态分析工具,每一种工具关注一个特定的能发挥自己特长的领域,我们可以列举一下:Java代码检查工具PMDPmd它是一个基于静态规则集的Java源码分析器,该软件功能强大,扫描效率高,是Java程序员debug的好帮手。它可以识别出潜在的如下问题:–可能的bug——空的try/catch/finally/switch块。–无用代码(Deadcode):无用的本地变量,方法参数和
- Java面试(基础篇)——解构Java常见的基础面试题 & 结合Java源码分析
Perley620
SpringBootjava面试开发语言
fail-safe和fail-fast机制Fail-fast:快速失败Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常,从而导致遍历失败packagecom.tianju.test;importjava.util.ArrayList;importjava.util.Iterator;imp
- java源码分析-反射Constructor类
String小四
jdk源码分析jdk
java源码分析-反射Constructor类1.是什么?Constructor是java反射时用于表示构造函数的抽象,它包含一个类的构造函数的相关信息。java中一切都是对象,那么每一个构造函数也是一个对象,把这写构造函数抽象出来,就是Constructor类。publicfinalclassConstructorextendsExecutableExecutable:它是Method和Cons
- Java源码分析-【HashMap】深入浅出的源码分析(JDK1.8版本)
洛神灬殇
【每日一句】一个人最大的挑战,是如何去克服自己的缺点。【基本原理】HashMap是一个基于map接口实现的散列表,存储内容是键值对(key-value)映射,并且键和值都可以使用null,因为key不允许重复,因此只能有一个键为null。HashMap使用hash算法进行数据的存储和查询。HashMap的实现用的是数组+链表+红黑树的结构,也叫哈希桶。在jdk1.8之前都是数组+链表的结构,因为在
- Java源码分析(三)ArrayList
heart荼毒
Javajava开发语言
ArrayList是我们经常用到的一个集合类,那么本篇我们一起学习下ArrayList的源码。一、创建ArrayList首先,我们从创建ArrayList开始。如下代码,创建一个空的ArrayList:Listlist=newArrayListlist=newArrayListlist){try{java.lang.reflect.FieldcapacityField=ArrayList.clas
- Retrofit结合RxJava源码分析
就叫汉堡吧
为什么要使用RxJava处理Retrofit网络请求Retrofit的调用过程我们前面文章已经整理过了,对于Android来讲呢,绝大部分的网络请求任务都是需要回调操作进行UI修改的,Retrofit网络请求底层是socket通信,因为网络的不确定性所以是阻塞性的,那么网络请求的工作就要放在子线程里去做,比如下面这行代码:Listusers=service.groupList(1001).exec
- 训练营算法题
harkecho
数据结构与算法LeetCode
第一周数组,链表,跳表:Java源码分析(ArrayList)LinkedList的标准实现代码LinkedList示例代码Java源码分析(LinkedList)LRUCache-Linkedlist:LRU缓存机制*Redis-SkipList:跳跃表、为啥Redis使用跳表(SkipList)而不是使用Red-Black?Array实战题目两数之和(近半年内,字节跳动在面试中考查此题达到15
- 【Java源码分析】String 字符串hashCode
吕布辕门
javajava
hashCodehashCode()方法用于返回字符串的哈希码。字符串对象的哈希码根据以下公式计算:s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]使用int算法,这里s[i]是字符串的第i个字符的ASCII码,n是字符串的长度,^表示求幂。空字符串的哈希值为0。语法publicinthashCode()参数无。返回值返回对象的哈希码值。实例publicclassTes
- 【Java源码分析】String 字符串复制 copyValueOf
吕布辕门
javajava
字符串复制copyValueOf()字符数组-字符串publicstaticStringcopyValueOf(char[]data):返回指定数组中表示该字符序列的字符串。publicstaticStringcopyValueOf(char[]data,intoffset,intcount):返回指定数组中表示该字符序列的字符串。语法publicstaticStringcopyValueOf(c
- Java源码分析(二)Double
heart荼毒
Javajava
本篇是源码分析的第二篇,上篇我们一起分析了Integer类的源码,本篇一起学习下Double类的源码,看下其实现。一、Double类图首先,相比Integer,Double类的源码只有1000+行代码。如下是Integer及其关联类/接口的类图:通过Integer类的类图,我们总结下它的特点:Double类继承自抽象类NumberDouble类实现了Comparable接口Double类使用fin
- RxJava学习总结
Stephen2Wong
【android】技术分享JAVA
RxJava学习总结1.RxJava主要作用1.1线程切换1.2链式编程、响应式编程2.RxJava思想总结2.1什么是ReactiveX2.2与观察者模式思想的不同点3.RxJava如何实现线程切换4.各类操作符说明及简单用法创建型操作符变换型操作符过滤型操作符条件型操作符合并型操作符异常型操作符5.背压背压6.RxJava源码分析如何实现链式代码调用如何实现线程切换?1.RxJava主要作用1
- Java文件的相对路径规则
fenglllle
C++Java架构设计java开发语言c++
前言最近做项目,又涉及到LinuxJava文件的相对路径,但是相对路径在不同的服务器或者docker上居然不一样,这个就很难受,只能用绝对路径解决,因为绝对路径是固定的路径,但是相对路径为什么会在不同的服务器不一样呢?Java源码分析与Demo因为文件夹或者文件的创建是native方式C++实现的,笔者本地是MacOS系统,Linux类似创建目录如上,创建文件如下:功能大同小异,毕竟Linux一切
- JavaParser实践记录
波波2
需求由于项目需要,需要添加对JAVA源码分析的支持。源码分析由团队自己开发,但如何保障开发的分析器结果的正确性,是本项目任务的最大困难。方案构想通过一个相对完善的JVAV分析器,生成中间输出,基于此输出信息与我们开发的分析器进行比较。两者在输出上有可能存在较大区别,如何在存在区别的文件上计算相似度,将是另一个问题,本文也就不去描述相似度计算这个问题。目前JAVA分析库或工具有不少,有一些Pytho
- Java源码分析 | Object
朝雾轻寒
本文基于OracleJDK11,HotSpot虚拟机。Object定义Object类是类层次结构的根。每个类都有Object类作为超类。所有对象,包括数组等,都实现了这个类的方法。静态代码块在Object类的最开始部分,有如下四行代码:privatestaticnativevoidregisterNatives();static{registerNatives();}native方法主要用于通过调
- Java源码分析-【ClassLoader】深入浅出的源码分析
洛神灬殇
每日一句在人生的道路上,即使一切都失去了,只要一息尚存,你就没有丝毫理由绝望。因为失去的一切,又可能在新的层次上复得。前提概要Java体系中的所有类,必须以【class字节码文件】必须被装载到JVM中才能运行,这个装载工作是由JVM中的类装载器完成的,类装载器所做的工作实质是把class字节码文件从存储介质(网络、硬盘、数据库等多元化方式)读取到JVM内存中,JVM在加载类的时候,都是通过Clas
- RxJava源码分析-数据流向
一只胖Wa牛
RxJava源码分析-数据流向RxJava使用也有很长一段时间了,RxJava说实话理解很难,但是使用很简单,源码其实也很精妙,本文分析基于Rxjava2.0推进几个好文,给Android开发者的RxJava详解给初学者的RxJava2.0教程作者比作水管的理解很有意思分析之前首先我们先提几个问题1.数据是如何创建封装成Observable的?2.数据是如何从上游的Observable发送到Obs
- RxJava小考题 -- Rxjava源码分析(一)
青蛙要fly
前言:现在面试很多都会问RxJava的源码,直接讲RxJava的源码,估计大家都不太会看下去,我们先看个小考题,然后再去看相关的源码。正文:问题一://对象类classData{publicStringname;publicData(Stringname){this.name=name;}}//比如我们使用just操作符来发送二个Data对象Observabledata=Observable.ju
- AbandonedConnectionCleanupThread$ConnectionFinalizerPhantomReference内存溢出
zzhongcy
JavaSpringBootjavaservletmysql
网上查了查资料,根据自己情况在这里整理了一下,供大家学习和参考。目录1、现象2、mysql-connector-java源码分析3、解决方法3.1、配置disableAbandonedConnectionCleanup3.2、暴力解决方式-----定时GC4、什么是虚引用5、关联对象真的被回收了吗6、虚引用的使用场景——mysql-connector-java虚引用源码分析7、参考:1、现象最近发
- Rxjava源码分析总结
gogoingmonkey
Rxjava优点个人认为优点有下面几个:1.使用结构、逻辑清晰;2.线程切换非常方便;3.只要流程发生错误,一定会执行onError(),不用到处处理;4.操作符强大;基础用法推荐https://www.jianshu.com/p/cd3557b1a474https://www.cnblogs.com/liushilin/p/7058302.html以上两篇写的很全了,下面是版本2和版本3的区别,
- Java源码分析-【ConcurrentHashMap】深入浅出的源码分析(JDK1.7版本)
洛神灬殇
前提概要ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现,以及被广泛使用,经典的开源框架Spring的底层数据结构就是使用ConcurrentHashMap实现的。ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7)。与同是线程安全的老
- Java源码分析-【ConcurrentHashMap】深入浅出的源码分析(JDK1.8版本)
洛神灬殇
承接上文在上一篇文章的时候,已经基本解释了JDK1.7版本的ConcurrentHashMap的核心代码,可见:Java源码分析专题系列之【ConcurrentHashMap】深入浅出的源码分析(JDK1.7版本),接下来我们要研究一下目前非常重要的JDK1.8版本的ConcurrentHashMap,这是目前我们最应该学习的技术源码之一。前提概要ConcurrentHashMap是concurr
- Java源码分析-【String类】带你一起探究字符串不可变的特性
洛神灬殇
前提介绍在Java中String类的使用的频率可谓相当高。它是Java语言中的核心类,在java.lang包下,主要用于字符串的比较、查找、拼接等等操作。如果要深入理解一个类,最好的方法就是看看源码:什么是字符串字符串是由引号所括起来的一系列字符序列。字符串类(String)/**String类源码*/publicfinalclassStringimplementsjava.io.Serializ
- RxJava源码分析(二)基本的数据流分析(有背压)
kakaxicm
引言上篇文章中,我们了解了RxJava基本的无背压数据流实现原理,本篇我们依然从案例着手,学习有背压下数据流响应实现。何为背压?大多数情况下,上游发射数据的速度大于下游处理数据的速度,背压策略就是控制数据流速,在RxJava中通过设置下游的处理能力实现“响应式拉取”解决背压问题。样例下面是同步订阅带背压的样例:privatevoidtestBackPressure(){//同步订阅事件,发送一个接
- RxJava源码分析(四)线程切换observeOn
kakaxicm
引言前面的文章我们走完了订阅方法线程切换的实现,今天我们来看观察方法的线程切换。线程调度observeOn.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(newObserver(){...}接着看observeOn方法:publicfinalObservableobserveOn(S
- RXJAVA
leap_
简介:rxjava是一个异步框架,功能和handler类似,特点是链式调用,逻辑简单。本文内容:观察者模式rxjava异步使用操作符介绍rxjava背压rxjava源码分析rxjava+retrofit观察者模式java中的观察者模式,主要有三个关键词需要记住,被观察者(Observable),订阅(subscribe),观察者(Observer)。核心思想:被观察者和观察者通过订阅产生一种关系,
- RxJava源码分析(五)变换操作符Map
kakaxicm
引言前面我们分析了RxJava的线程调度,今天我们研究下RxJava的另外一块强大的功能-事件变换操作符。map操作符官方定义:transformtheitemsemittedbyanObservablebyapplyingafunctiontoeachitem翻译过来就是就是转换发射数据的操作符,说白了就是起到事件变换的作用,下面是图示:map操作符map操作符示例:/***变换操作符*///1
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数