利发国际官方网

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
开源中国 - 找到您想要的开源项目,分享和交流 - 利发国际官网-利发国际官方网-利发国际官方网站

精彩阅读

  1. 最新推荐

  2. 今日热门

  3. 本周热门

  4. 每日一博

  5. 最新文章

数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(一)之语法解析

![](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. Lexer 词法解析器](#) - [3. Token 词法标记](#) - [3.1 DefaultKeyword 词法关键词](#) - [3.2 Literals 词法字面量标记](#) - [3.2.1 Literals.IDENTIFIER 词法关键词](#) - [3.2.2 Literals.VARIABLE 变量](#) - [3.2.3 Literals.CHARS 字符串](#) - [3.2.4 Literals.HEX 十六进制](#) - [3.2.5 Literals.INT 整数](#) - [3.2.6 Literals.FLOAT 浮点数](#) - [3.3 Symbol 词法符号标记](#) - [3.4 Assist 词法辅助标记](#) - [4. 彩蛋](#) ------- # 1. 概述 **SQL 解析引擎**,数据库中间件必备的功能和流程。Sharding-JDBC 在 `1.5.0.M1` 正式发布时,将 SQL 解析引擎从 Druid 替换成了自研的。**新引...
芋艿V 发布于 19小时前 阅读 158 评论 2 点赞 2

【福利】蓝色巨人的云计算PaaS平台IBM Bluemix免费试用!

IBM Bluemix,包含认知、物联网、大数据分析、安全、DevOps、应用、应用整合、移动、计算、网络、存储等 11 大类共 140 多个服务的云计算平台。
IBM Bluemix

从字节码和JVM的角度解析Java核心类String的不可变特性

从字节码和JVM的角度解析Java核心类String的不可变特性
kailuncen 发布于 1天前 阅读 374 评论 5 点赞 1

【软件周刊第 38 期】IntelliJ IDEA 2017.2 正式发布;Angular 5 发布首个 Beta 版

软件周刊(07.16 — 07.22):本周热门软件更新 — Wine 2.0.2 发布,Windows 应用兼容层;ArangoDB 3.2 正式版:提升性能,减少内存占用;JDK 8u141 发布,Java 开发工具包;MySQL 8.0.2 DMR 发布,添加窗口函数功能;Kubernetes 1.7.1 版本发布,容器集群管理系统
编辑部的故事 发布于 2天前 阅读 1687 评论 1

Golang面试题解析

最近在很多地方看到了[golang的面试题](https://zhuanlan.zhihu.com/p/26972862),看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 ## 面试题 ### 1. 写出下面代码输出内容。 ```go package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } ``` 考点:**defer执行顺序** 解答: defer 是**后进先出**。 panic 需要等defer 结束后才会向上传递。 出现panic恐慌时候,会先按照defer的后入先出的顺序执行,最后才会执行panic。 ```go 打印后 打印中 打印前 panic: 触发异常 ``` ### 2. 以下代码有什么问题,说明原因。 ```go type student struct { Name string Age int } func pase_student() { m := make(map[string]*student) stus := []student{ {Name: "zhou", Age: 24}, {Name: "li", Age: 23}, {Name: "wang", Age: 22}, } for _, stu := range stus { m[stu.Name] = &stu } } ``` 考点:**foreach** 解答: 这样的写法初学者经常会遇到的,很危险! ...
梦朝思夕 发布于 3天前 阅读 456 评论 7 点赞 4

【源资讯 第36期】赶超 Java 和 PHP,Python 成最热门编程语言?

【一周源资讯(2017.7.15-2017.7.21)】JetBrains 近日发布了2017 开发者生态报告,JavaScript 是最常用的语言,而 Go 被认为是最有前途的语言,但在 IEEE Spectrum 发布的编程语言排行榜和 Packt 发布的 2017 年度技能调查报告中,Python 最终获得冠军!
编辑部的故事 发布于 3天前 阅读 3083 评论 19 点赞 5

mysqldump之跳过指定表

背景 目前系统中对于业务数据做了备份以作为数据校验,比如期初数据期末数据进行对比监控,因此产生了大量的备份表。备份表单表数据随着业务的增长而持续增长。导致晚间备份数据超长。 原方法 ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 这样会导致备份时间超长,文件太大(随着时间增长 表变大,表变多) 目前使用jenkins远程ssh调用脚本远程执行mysqldump进行备份。 我的思考 mysqldump支持备份指定库,那么我们可以备份其他到db中? 备份忽略指定前缀的表 解决方法 比较简单,略过 mysqldump支持  --ignore-table但是不支持通配符,那么我们可以通过生成mysqldump的指令来完成。对于指定名称我们可以通过show tables来实现。因此如下  ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup $(mysql -uroot -proot -Df6dms_1116_prod_backup -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_1116_prod_backup."$1}'|xargs)| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 通过查询db的...
Mr_Qi 发布于 3天前 阅读 144

Thinkphp3的monolog实现

一【背景】   公司有个基于tp3的项目,此项目经历多次改版重构,有种千疮百孔的感觉,让人看着隐隐心疼,特别是在日志模块上,基于tp提供的日志功能,各种混乱不协调,且与业务的耦合非常高;   但是这个项目又是很重要的,是最直接面向用户的入口,不出现问题则好,一出现就是一团乱,问题定位均需依赖后端接口或者第三方,也因此背过不少的锅,眼泪总是默默的流在心里;   是时候做出改变了! 二【选定方案】   项目基于Thinkphp3.2版本,此版本在日志方面使用的是php内置的error_log函数实现,在不改动tp内核源码情况,很难定制自己的日志驱动,我们使用过程存在几个埋怨点: 1)日志格式难统一,没有一个标准什么时候写日志,写什么日志等 2)日志扩展困难,特别对于项目中特定的需要log的情况 3)log代码与业务耦合厉害,维护起来很让人烦躁 那么基于tp3本身的日志做些修补,意义不是太大,治标不治本,所以我们努力寻找第三方完整的开源日志库: 1)这里我们应该首先就会想到php4log,一个很强大,很完整的日志库,网上大家对它的评价大都围绕在低性能上,在实际的测试中,性能上也确实让人堪忧,含泪略过; 2)性能方面国产的seaslog无疑是最佳的,不论从官方测...
goodman_fz 发布于 3天前 阅读 127

从信息熵的角度来理解机器学习要优化的目标

  摘要:机器学习任务中最核心的工作是对构造合适的损失函数,并对其进行优化,得到最终的模型。那么如何来构造损失函数,常用的构造函数背后有哪些理论的支撑,本篇文章从熵的角度来解析,希望对对读者起到抛装引玉的作用。 一、 基础概念 信息量 对于离散概率,定义p_i的信息量为 可以理解为需要查找多少次可以找到对应的离散值,比如概率0.125,对应的信息量是3,也就是说需要至少折半查找3次才能找到对应的离散取值。 信息熵(Information entropy) 衡量信息的不确定性(对于人来说),熵越小,信息就越确定。通俗的说,可以从几个方面来描述,比如人判断一件事情时有把握的程度、信息压缩编码时最小需要的位数。简单的说,熵反应了信息量。定义如下 交叉熵(Cross Information entropy) 如果一件事情的不确定性为0,那么信息熵也为0,所以信息熵可以理解为消除事件不确定性所要付出的代价,而实际当中很难采用最真实的概率分布来对事件进行判断,而是采用一种接近真实的概率分布,比如q来拟合真实的场景,将q带入信息熵的公式就可以得出交叉熵的定义 交叉熵所代表的含义是,采用非真实概率分布q下,要消除事件的不确定性所付出的代价,通常情况下,交叉熵要比信息熵大...
saintqdd 发布于 4天前 阅读 282 点赞 3

给 Web 开发人员推荐的开源图形库 —— 2D/3D

现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高,数据可视化、动画交互、2D/3D 等元素已然成为标配。 以下是为 Web 开发者推荐的一些精品开源图形库,旨在专注于最常见的问题和最常用的东西。将针对动画(Animation)、数据可视化(Data Visualization)、2D/3D 分别整理,欢迎保持关注。 给 Web 开发人员推荐的开源图形库 —— 动画 2D 一、绘图渲染 1、图形 PixiJS 一个 HTML5 构建引擎,用最快、最灵活的 2D WebGL 渲染器创建漂亮的数字化内容。旨在提供一个可以在所有设备上运行的快速轻量级 2D 库,帮助你创建丰富的交互式图形、跨平台应用和游戏,而无需深入到 WebGL API 或处理浏览器和设备的兼容性。 效果预览:点此查看 Fabric.js 一个可以轻松使用 HTML5 canvas 元素的库,在 Canvas 元素之上提供交互对象模型,同时还包含 SVG-to-canvas 解析器。它可以帮助你在画布上创建和填充对象,从简单的几何图形到成百上千路径组成的复杂图形。你可以通过鼠标轻松的移动、缩放和旋转这些对象,修改它们的属性(颜色、透明度,层叠顺序)等等。 效果预览:点此查看 2、立体像素 Obelisk.js 这是一个构建等距立体像素对象的 JavaScript 库,通过提...
编辑部的故事 发布于 4天前 阅读 4621 评论 16 点赞 17

数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. 查询操作](#) - [4. 插入操作](#) - [5. 彩蛋](#) ------- # 1. 概述 可能你在看到这个标题会小小的吃惊,MyCAT 能使用 MongoDB 做数据节点。是的,没错,确实可以。 吼吼吼,让我们开启这段神奇的“旅途”。 本文主要分成四部分: 1. 总体流程,让你有个整体的认识 2. 查询操作 3. 插入操作 4. 彩蛋,😈彩蛋,🙂彩蛋 建议你看过这两篇文章(_非必须_): 1. [《MyCAT 源码分析 —— 【单库单表】插入》](http://www.yunai.me/MyCAT/single-db-single-table-insert/?self) 2. [《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?self) # 2....
芋艿V 发布于 5天前 阅读 1330 评论 17 点赞 1

Golang依赖管理工具:glide从入门到精通使用

## 介绍 不论是开发Java还是你正在学习的Golang,都会遇到**依赖管理**问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍[gilde](https://github.com/Masterminds/glide)。 glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷。罗列一下golang的 get 子命令管理依赖有很多大缺陷: * 能拉取源码的平台很有限,绝大多数依赖的是 github.com * 不能区分版本,以至于令开发者以最后一项包名作为版本划分 * 依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get * 只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor) ## 安装 ### Golang环境设置 采用vendor目录特性,Go 1.5 做为试验特性加入(需要指定 GO15VENDOREXPERIMENT=1 环境变量),并在 Go 1.6 正式引入的一个概念。多数 go 依赖解决方案都基于它的。GO15VENDOREXPERIMENT 是 Go 1.5 版本新增的一个环境变量,如果将值改为 1 则表示启用。它可以将项目根目录名为 vendor 的目录添加到 Go 的库搜寻路径中,实现一个局部依赖的效果...
梦朝思夕 发布于 5天前 阅读 2102 评论 19 点赞 6

捋一捋JavaScript对象的继承

文章针对不理解继承的程序员朋友去剖析和理解继承.
Jill1231 发布于 5天前 阅读 1811 评论 5 点赞 7

在angularJS中使用three.js的一些注意事项

因为考虑到项目需要我将之前自己做的demo放到了angularJS的一个component中,其实一开始是没有准备用框架的但是后面发现需要进行的双向绑定越来越多,后期表单数据的变化量也很大,最后还是选择用NG来做这些事情。过程不怎么顺利,在中间被几个坑卡了比较久,这里我记录一下这些问题,希望对大家有帮助,毕竟现在看来NG的资料不多,NG上用three.js的更少。
SwatNo27 发布于 5天前 阅读 175 评论 1

Flume + Solr + log4j搭建web日志采集系统

这篇博客是学习Hadoop生态系统的第一篇博客,上一篇,搭建好了集群,这篇会做一个 start up,日志采集与搜索。
OrangeJoke 发布于 5天前 阅读 1278

spring+activemq实战之配置监听多队列实现不同队列消息消费

最近在项目开发中,需要用到activemq,用的时候,发现在同一个项目中point-to-point模式中,配置多个队列,消息生成者只能往一个队列中发消息或者往多个队列发送相同消息,并且监听器只能监听一个队列,这样配置多个队列也没有意义,作者想要实现的是:配置多个队列,并且生产者可以往多个队列中发送不同的消息,监听器消费时,可以判断根据不同的队列进行相应的业务处理,网上搜了一个,发现都是单个队列和监听,研究了一下,发现是可以实现的,废话不多说,直接上代码:
starkhoward 发布于 6天前 阅读 1331 评论 13 点赞 2

spring-boot & zxing 搭建二维码服务

搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片
六月依 发布于 6天前 阅读 2375 评论 9 点赞 6

Vim 爱好者看过来,12 个实用的 Vim 使用技巧

这篇 Vim 使用技巧的合集汇总了一些有趣的,由中级到高级的使用技巧。来回顾一下吧。 1. 重复上一条 Ex 命令 在 Vim 中有 3 种命令行模式提示: Ex 命令提示符::something 查找提示符 Search prompt:/something 表达式提示符 Expression prompt:(在插入模式下输入 <C-r>= ): =1+1<cr> 假如我们从 Ex 命令提示符中运行一个 spec: :!rspec spec/models/code_spec.rb 我们可以通过在普通模式下输入 @: 来重复上一条 Ex 命令。 2. 在 CSS 中对属性进行排序 如果我们需要按照字母表顺序对 CSS 选择器中的行进行排序,只需在可视模式下选择选中的行并输入 :sort,然后就可以对它们进行排序。 h4 { font-size: 11px; margin: 15px; background: red; } 3. 选择复制和粘贴的文本 我们可以使用 gv 来选择原始的需要复制的文本,使用 gb 选择上一次粘贴的文本。gb 是一个自定义的映射,可将其添加到 vimrc 文件,而且该命令在进行提取方法重构、剪切时十分有用。我们还需要修复缩进,使用 gb 可以轻易选择粘贴的文本,然后使用 < 或 > 来进行修复。 " select last paste in visual mode nnoremap <expr> gb '`[' . strpart(getregtype(), 0, 1) . '`]' 4....
编辑部的故事 发布于 6天前 阅读 4486 评论 24 点赞 4

深入了解 gRPC:协议

RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语音对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 ## HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可读性非常好,但其实并不高效,笔者主要碰到过几个问题: ### Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的读出 HTTP header。HTTP header 各个 fields 使用 `\r\n` 分隔,然后跟 body 之间使用 `\r\n\r\n` 分隔。解析完 header 之后,我们才能从 header 里面的 `content-length` 拿到 body 的 size,从而读取 body。 这套流程其实并不高效,因为我们需要读取多次,才能将一个完整的 HTTP 请求给解析出来,虽然在代码实现上面,有很多优化方式,譬如: + 一次将一大块数据读取到 buffer 里面避免多次 IO read + 读取的时候直接匹配 `\r\n` 的方式流式解析 但上面的方式对于高性能服务来说,终归还是会有开销。其实最...
TiDB 发布于 6天前 阅读 742 评论 4

spring AOP是什么?你都拿它做什么?

由浅入深手把手带你搞定spring Aop。
liugh_develop 发布于 6天前 阅读 3953 评论 27 点赞 17 打赏 5

张志华:关于机器学习的领悟与反思

      近年来,人工智能的强势崛起,特别是去年AlphaGo和韩国九段棋手李世石的人机大战,让我们深刻地领略到了人工智能技术的巨大潜力。数据是载体,智能是目标,而机器学习是从数据通往智能的技术、方法途径。因此,机器学习是数据科学的核心,是现代人工智能的本质。       通俗地说,机器学习就是从数据中挖掘出有价值的信息。数据本身是无意识的,它不能自动呈现出有用的信息。怎样才能找出有价值的东西呢?第一步要给数据一个抽象的表示;接着基于表示进行建模;然后估计模型的参数,也就是计算;为了应对大规模的数据所带来的问题,我们还需要设计一些高效的实现手段,包括硬件层面和算法层面。统计是建模的主要工具和途径,而模型求解大多被定义为一个优化问题或后验抽样问题,具体地,频率派方法其实就是一个优化问题。而贝叶斯模型的计算则往往牵涉蒙特卡罗(Monte Carlo) 随机抽样方法。因此,机器学习是计算机科学和统计学的交叉学科。       借鉴计算机视觉理论创始人马尔 (Marr) 的关于计算机视觉的三级论定义,我把机器学习也分为三个层次:初级、中级和高级。初级阶段是数据获取以及特征的提取。中级阶段是数据处理与分析,它又包含三个方面:首先是...
louise 发布于 6天前 阅读 1576

MySQL 死锁与日志二三事

最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际 case,分享下相关的经验与方法。 1、Case1:部分数据更新失败 某天渠道同学反馈某报表极个别渠道数据为 0,大部分渠道数据正常。这个数据是由一个统计程序每天凌晨例行更新的,按理来说,要么全部正常,要么全部失败,那会是什么原因导致极个别数据异常呢? 首先我们能想到的自然是根据统计任务日志来看了,但是看了统计程序打印的日志没有发现诸如 SQL update 失败的异常描述,那当时的数据库究竟发生了什么呢?在查看 MySQL-server 日志之前,习惯性的看了下数据库状态: SHOW ENGINE INNODB STATUS\G 恰好看到了凌晨这个 update 发生了死锁: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2017-07-17 04:09:01 0x7f6de03c8700 *** (1) TRANSACTION: TRANSACTION 215208479, ACTIVE 0 sec fetching rows mysql tables in use 3, locked 3 LOCK WAIT 5 lock stru...
xrzs 发布于 17小时前 阅读 894

【码云周刊第 30 期】打造场景化的图片特效处理工具

每周为您推送最有价值的利发国际官方网内参!
利发国际官方网码云 发布于 5天前 阅读 845 评论 1

单例模式Java的七种写法

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。
楠木楠 发布于 8小时前 阅读 205 点赞 1

数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(一)之语法解析

![](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. Lexer 词法解析器](#) - [3. Token 词法标记](#) - [3.1 DefaultKeyword 词法关键词](#) - [3.2 Literals 词法字面量标记](#) - [3.2.1 Literals.IDENTIFIER 词法关键词](#) - [3.2.2 Literals.VARIABLE 变量](#) - [3.2.3 Literals.CHARS 字符串](#) - [3.2.4 Literals.HEX 十六进制](#) - [3.2.5 Literals.INT 整数](#) - [3.2.6 Literals.FLOAT 浮点数](#) - [3.3 Symbol 词法符号标记](#) - [3.4 Assist 词法辅助标记](#) - [4. 彩蛋](#) ------- # 1. 概述 **SQL 解析引擎**,数据库中间件必备的功能和流程。Sharding-JDBC 在 `1.5.0.M1` 正式发布时,将 SQL 解析引擎从 Druid 替换成了自研的。**新引...
芋艿V 发布于 19小时前 阅读 158 评论 2 点赞 2

73款阿里巴巴利发国际官方网详解!

详细解读阿里巴巴利发国际官方网,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

从测绘男到程序猿。

我依然坚持学习, 因为我知道有一天我将不再这样。
liugh_develop 发布于 14小时前 阅读 74 评论 1 点赞 1

CF手游脚本制作

最近看CF手游 外挂,脚本很多啊,对于那种自喵,透视的我还是不建议做的 但刷挑战模式“世界BOSS”用用脚本感觉也不是很过分哈...............望轻喷。。。。 这里给大家用按键精灵做了个刷三头龙普通模式的脚本,这里以安卓为例从做到打包整个过程,没什么技术含量。。。。。 第一步 当然是去下载按键精灵了 http://www.mobileanjian.com 我们需要下载按键精灵安卓版和按键精灵手机助手 ,安卓版当然是安装到你的安卓手机了,手机助手当然是安装到电脑端的 安装好后手机助手是需要连接手机的,我这里用的模拟器,真实手机也是可以的 第二步:认识下这个个按键精灵 首先打开我们的按键精灵手机助手,点击新建脚本就会出现下图的内容,大家自己可以简单的摸索下,其实用起来很简单的建议切换到源文件进行脚本的编写;另外要提到就是作者后台功能,还是挺爽的,可以在发布后控制你的脚本,可以去看看,,,,, 第三步:就是需要编写我们的脚本啦 我这里贴出我做的三头龙脚本,可以看看,涉及到外挂脚本 本人胆小怕和小刀网一样就不好了,所以就只给个简单的脚本,怕天美打我。。。。谅解,所以就简单带大家入个门。。。。。 Touch 300, 20, 1000 Touch 620, 400, 1000 Tou...
北极心 发布于 3小时前 阅读 71

Superset:搭建python开发环境

Superset:搭建python开发环境
quanpower 发布于 7天前 阅读 44

ISP劫持http请求

ISP劫持http请求
Mr_Qi 发布于 3个月前 阅读 170 评论 4

OpenCV图像哈希计算及汉明距离的计算

OpenCV均值哈希与感知哈希计算,比对图像相似度
美丽世界的孤儿 发布于 3小时前 阅读 23

mysql安全之loginpath

用了许久的mysql,最近发现了一个新玩具。 对于兼运维的开发同学来说,需要备份数据库。我们一般通过crontab来实现。 执行 crontab -e 30 1 * * * /data/shell/backupdb.sh; 我们在凌晨1:30执行备份数据库操作 脚本如下 /usr/local/mysql/bin/mysqldump -uroot -pXXXX --skip-lock-tables --databases f6dms_trial $(mysql -uroot -pXXXX -Df6dms_trial -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_trial."$1}'|xargs)| gzip > /data/backup/f6dms-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz; /usr/local/mysql/bin/mysqldump -uroot -pXXXX --skip-lock-tables --databases f6db_trial f6report_new_trial | gzip > /data/backup/f6db-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz; 这个关于忽略指定数据表(不定个数)的可以参考mysqldump之跳过指定表 我们这边的显式写上了db的用户名密码,如果该脚本我们是通过svn管理的,那么很容易出现db的用户名密码泄露,导致出现一些安全隐患。 mysql在5.6之后提供了loginpath功能。 loginpath的官方介绍如下 The best way to specify server connection information is with your .my...
Mr_Qi 发布于 8小时前 阅读 17

安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)

Docker Machine 用于管理多个 Docker Host,本节先学习如何安装 Docker Machine.
CloudMAN 发布于 12小时前 阅读 17

Spring Batch

Spring Batch+Scheduled ,Spring Batch多线程,Spring Batch MyBatisPagingItemReader 分页查询
jack_peng 发布于 1周前 阅读 30 评论 2 打赏 1

8.6 Spring Boot集成 Spring Security 《Spring Boot开发:从0到1》 工程实例: LightSword

# 《Spring Boot开发:从0到1》 工程实例: LightSword 使用SpringBoot,Scala開發的自動化測試平台 ## 书籍参考 《Spring Boot开发:从0到1》 ==== 第一部分Spring Boot基础 [第1章 Spring Boot史前简述](http://www.jianshu.com/p/53134362089a) === 1.1 J2EE(Java 2 Platform Enterprise Edition)简介 1.2 Java企业级开发框架概述 1.3 Spring生态系统 1.4 Spring JavaConfig [第2章 Spring Boot简介](http://www.jianshu.com/p/53628ac5c85d) === 2.1 用Spring Boot创造一切 2.2 Spring Boot起源 2.3 Spring Boot在Spring生态中的构成 2.3.1 Spring生态顶级项目 2.3.2 Spring cloud子项目 2.4 Spring Boot核心组件 2.5 Spring Boot版本历史 2.6 Spring Boot学习成本 [第3章 Spring Boot快速开始Hello World](http://www.jianshu.com/p/36529384b8c6) === 3.1 Spring Boot CLI groovy版Hello World 3.2 常规Java版Hello World [第4章 零XML配置的Spring Boot Application](http://www.jianshu.com/p/5e8210f5e5a3) === 4.1 application.properties 4.2 Spring Boot属性配置和使用 4.2.1配置的优先级 4.2.2命令行参数配置 4.2.3 random.*属性配置 4.2.4属性文件配置 4.2....
东海陈光剑 发布于 3个月前 阅读 127

Java安全框架

shiro     shiro是一个权限管理框架,是apache下的开源项目。相比spring security框架更简单灵活,spring security对spring依赖较强。shiro可以实现web系统、c/s、分布式等系统 权限管理。 shiro认证流程:          1、subject(主体)请求认证,调用subject.login(token)          2、SecurityManager (安全管理器)执行认证          3、SecurityManager通过ModularRealmAuthenticator进行认证。          4、ModularRealmAuthenticator将token传给realm,realm根据token中用户信息从数据库查询用户信息(包括身份和凭证)     5、realm如果查询不到用户给ModularRealmAuthenticator返回null,ModularRealmAuthenticator抛出异常(用户不存在)          6、realm如果查询到用户给ModularRealmAuthenticator返回AuthenticationInfo(认证信息)          7、ModularRealmAuthenticator拿着AuthenticationInfo(认证信息)去进行凭证(密码 )比对。如果一致则认证通过,如果不致抛出异常(凭证错误)。   spring security : todo   ...
pandudu 发布于 18小时前 阅读 13

一千个不用 Null 的理由

港真,Null 貌似在哪里都是个头疼的问题,比如 Java 里让人头疼的 NullPointerException,为了避免猝不及防的空指针异常,千百年来程序猿们不得不在代码里小心翼翼的各种 if 判断,麻烦而又臃肿,为此 java8 引入了 Optional 来避免这一问题。 下面咱们要聊的是 MySQL 里的 null,在大量的 MySQL 优化文章和书籍里都提到了字段尽可能用NOT NULL,而不是NULL,除非特殊情况。但却都只给结论不说明原因,犹如鸡汤不给勺子一样,让不少初学者对这个结论半信半疑或者云里雾里。本文今天就详细的剖析下使用 Null 的原因,并给出一些不用 Null 的理由。 1、NULL 为什么这么多人用? NULL是创建数据表时默认的,初级或不知情的或怕麻烦的程序员不会注意这点。 很多人员都以为not null 需要更多空间,其实这不是重点。 重点是很多程序员觉得NULL在开发中不用去判断插入数据,写sql语句的时候更方便快捷。 2、是不是以讹传讹? MySQL 官网文档: NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte. Mysql难以优化引用可空列查询,它会使索引、...
xrzs 发布于 2周前 阅读 1947 点赞 1

iOS之UIWebView无法获取web标题

最近遇到了一个问题,就是在`UIWebView`的代理方法里,执行`document.title`的`js`代码无法获取网页标题,代码如下: ``` - (void)webViewDidFinishLoad:(UIWebView *)webView { // 取加载html文件的标题名 NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"]; } ``` 出现这个问题,我首先确定是不是代码的问题,经过分析,发现代码没有改动,但这次却无法获取网页标题,甚是奇怪。经过查找分析,问题是在这一版中,前端人员把网页的标题设置放在了异步操作里,导致`UIWebView`在加载网页完成后,在代理方法`webViewDidFinishLoad:`里无法立即获取标题,因为获取标题的方法是异步的,而网页加载完就会调用该代理方法,那时候的网页`title`还没有值,所以获取不到`title`的值。 下面是网页异步获取`title`的代码,使用了`jQuery`和`Ajax`技术来异步获取`title`: ``` $.ajax({ url: remoteur+'/api/innerMessageApi/noticeMessage.htm?callBackFunc=xx', type: 'get', dataType: 'jsonp', jsonpCallback:"xx", data: {msgId: msgId}, success: function(res){ console.log(res); if ( res.successFlag == 'Y' ){ content = res.conten...
飞鱼湾 发布于 10小时前 阅读 12

VirtualBox 5.1.24神更新

在经过接近3个月的研发之后,甲骨文(Oracle)于今天推出了VirtualBox 5.1.24维护版本更新。本次版本更新带来了诸多改善和BUG修复,尤其是针对GNU/Linux用户。首先,该版本初步支持即将到来的Linux Kernel 4.13分支内核,目前尚处于开发阶段。 此外,VirtralBox 5.1.24为使用 CONFIG_CPUMASK_OFFSTACK选项编译的多个Linux内核减少了内核堆栈消耗,改善了基于GCC 7编译器的Linux Kernel模组的兼容性,并修复了Linux Kernel 4.12内核的诸多问题。 此外对于GNU/Linux用户,VirtualBox 5.1.24版本终于为更老的发行版本提供了2D视频加速功能,改善了使用3D pass-through的Fedora 25和Fedora 26支持,改善了Oracle Linux 6 with UEK4的动态尺寸调整。 更多linux咨询请查看www.linuxprobe.com
linux0001 发布于 19小时前 阅读 11

记一次性能压测的问题排查过程

最近一直在搞性能压测,断断续续的搞了一个月了,中间遇到各种问题,这里将这些问题分享下,以后大家踩坑时可以参考~ 俗话说,工欲善其事,必先利其器。拿到机器,先检查CPU、内存、网卡、磁盘四大件。咋知道这第一关就踩雷了,dstat -tamps一下,看见网卡的出口流量总是为0: 出口流量为0,怀疑是读数有问题,如果只能进不能出,那根本无法远程到这台机器上。wget证实一下 下载文件成功,证明只是网卡出口数据包显示有问题,而网卡一直正常发送数据包。最后找运维的兄弟看看,说是网卡驱动问题,立即升级驱动重启机器解决问题。效率高得不得不给个赞!! 环境OK了,开始干活。把jmeter跑起来,使劲的调整着压测线程数,同时看着业务机的状态,实际发现无论怎么调整jmeter的压测线程数,应用的tps也无法上去,而且应用机器的水位都属于正常范围,没有任何压力;再检查ulimit,正常;再看看业务日志,有少量的业务错误日志(下游依赖的数据mock返回失败造成),属于正常范围。接着开始怀疑是tomcat的工作线程数太小,打开server.xml,逐次加大maxConnections、maxThreads的值,峰值tps也没有任何提升;同时检查此时应用的jstack+gc,没有发现异常。开始陷入困境:TPS上不去,...
ericquan8 发布于 19小时前 阅读 10

TCC型分布式事务原理和实现之:Transaction与Participant

前言       在TCC型分布式事务原理和实现之:TransactionManager一文中,介绍了TCC事务管理器的主要功能和实现原理。相较于事务管理器,事务则包含了更多的属性状态,下面的UML图中可以清晰的体现Transaction与Participant的关系。              事务       事务具有很多的属性状态。首先,事务必须具有一个唯一ID来标识自己(保证进程内唯一即可),这样不同的事务就可以进行隔离控制,常见的事务ID生成方法就是使用uuid了;TCC事务一共有try、confirm和cancel三个阶段,因此,事务必须有一个事务状态字段来标识事物当前的状态:TRYING, CONFIRMING, CANCELLING;在TransactionManager一文中,多次提到根事务和分支事务,此处再重新提一下,所谓根事务,就是指事务的主动发起方,而分支事务,就是事务的被动发起方,也就是谁先开始谁就是老大,剩下的都是追随者、参与者。那么事务当然需要一个类型字段来标识当前事务的类型了,根事务用ROOT标识,分支事务用BRANCH标识;事务不一定总是成功,否则的话分布式事务也就不再是什么难题和秘密了,事务失败了怎么办呢?很多人第一想法就是回滚啊,其实,可以完成回滚的事务我将其理解为“正常事务”,也就是事...
黑客画家 发布于 2个月前 阅读 942 评论 4 点赞 2

追溯“Android 系统的诞生地——美国硅谷” 写《深入理解Android内核设计思想(第2版)》前言时

Google大楼前摆放着Android的最新版本雕塑,历史版本则被放置在Android Statues Park中。写《深入理解Android内&...
louise 发布于 1个月前 阅读 25

穷人也能拥抱‘持续集成’与‘持续交付’

首先说一说为什么说穷人,笔者自己买了一台阿里云的ECS服务器,最开始是一台便宜的单核1G的服务器(其实前面还有更苦的,一把辛酸泪就不说了),苦了它了,里面跑了一堆服务,诸如Tomcat、Nginx、MySQL、Redis、RabbitMQ、JVM等等,发现本来就很吃力,后来又想搞个持续集成部署个Jenkins,结果搞挂了几次服务器,每次内存飙到95%(要知道Gitlab要求机器最好为4G),只能重启服务器了。又没钱升级配置,只能看看有什么服务比较好。
橙子先生 发布于 1周前 阅读 2986 评论 19 点赞 2 打赏 1

【码云周刊第 29 期】构建高性能微服务架构

每周为您推送最有价值的利发国际官方网内参!
利发国际官方网码云 发布于 2周前 阅读 2955 评论 3 点赞 4

用过都说好的期货资管软件|期货资管软件您值得拥有

期货资管软件|内盘期货资管软件|外盘期货资管软件|恒指资管软件|德指资管软件|美原油资管软件|A50资管软件|联系QQ:13564123143
Sell反向跟单软件 发布于 2周前 阅读 1970

7月22日济南源创会火热报名,解读区块链的前世今生及未来趋势!

七月流火,OSC源创会带着自由、开放、分享的开源精神,也带着满满的干货主题,邀请济南的各位来约。
源创会

Spring思维导图,让Spring不再难懂(mvc篇)

>写在前面 生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。 温故而知新,今天一起来复习一下spring mvc的内容吧。 >spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 ![原理.png](http://upload-images.jianshu.io/upload_images/4120002-9409cf62de5e6d39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * (1) Http请求:客户端请求提交到DispatcherServlet。 * (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 * (3) 调用处理器:DispatcherServlet将请求提交到Controller。 * (4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。 * (6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。 * (8) Http响应:视图负责将结果显示到客户端。 >主要注解 ![spring mvc注解....
java思维导图 发布于 1周前 阅读 8489 评论 26 点赞 32

给 Web 开发人员推荐的开源图形库 —— 动画

现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高,数据可视化、动画交互、2D/3D 等元素已然成为标配。 以下是为 Web 开发者推荐的一些精品开源图形库,旨在专注于最常见的问题和最常用的东西。将针对动画(Animation)、数据可视化(Data Visualization)、2D/3D 分别整理,欢迎保持关注。 动画 一、效果(Effects) 1、切换和过渡 Animate.css 一个跨浏览器的 css3 动画库,内置了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)、放大缩小(等多达 60 多种动画效果,几乎包含了所有常见的动画效果。在炫酷的同时,还一直保持着易于使用的特点。 效果预览:点此查看 Magic Animations 一个独特的 CSS3 动画特效包,可以自由地使用在 Web 项目中。包括:Magic Effects、Bling、Static Effects、Static Effects Out、Perspective、Rotate、Slide、Math、Tin、Bomb 等各类效果。 效果预览:点此查看 Effeckt.css 同样是一个包含众多精妙的 CSS3 切换和动画效果库,例如:弹窗、按钮、导航、列表、页面切换等,适用于网站和移动 Web 开发。 效果预览:点此查看 还有: Velocity...
编辑部的故事 发布于 2周前 阅读 5955 评论 8 点赞 32

Flume + Solr + log4j搭建web日志采集系统

这篇博客是学习Hadoop生态系统的第一篇博客,上一篇,搭建好了集群,这篇会做一个 start up,日志采集与搜索。
OrangeJoke 发布于 5天前 阅读 1278

Nginx服务负载均衡,反向代理,缓存加速,访问分布式文件系统高可用

一,Nginx         Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。AS13000系统Nginx为1.9.2版本。Nginx具有很多非常优越的特性: 在连接高并发的情况下,具有较好的性能,支持负载均衡,实现可扩展的浏量管理;使Web服务器更灵活,更高效,更安全;能够快速灵活且可靠的传送流视频和音频内容;支持强大的Web加速和移动端性能的解决方案;不仅只保护数据安全,也保证网站在面对恶意流量的攻击中能正常运行,从而保护应用安全;Nginx是一个可管理的安全的基于HTTP API流量的可信平台,为API提供安全保障和使用策略;Nginx是一个完整的软件应用分发平台,能够取代昂贵的ADC硬件负载平衡器,节省成本。 1.1 Nginx共享配置 Nginx配置需要在服务接口节点执行,主要包括以下文件: 主配置文件:/usr/local/nginx/conf/nginx.conf 执行文件:/usr/local/nginx/sbin 日志文件:/usr/local/nginx/logs 1.1.1 匿名用户访问配置 根据不同的用户权限控制级别的要求,需要在服务接口节点主配置文件:/usr/local/nginx/conf/nginx.conf下进行配置。 用户匿名访问即无权限控制要求,用户访问时不要求输入用户名、密码(如果需要通过Nginx接口...
臧教授 发布于 1周前 阅读 2181 评论 11 点赞 3

【软件周刊第 37 期】Fedora 26 正式版发布;Redis 4.0.0 正式发布,4.0 系列的首个稳定版

软件周刊(07.09 — 07.15):本周热门软件更新 — 深度操作系统镜像服务新增 Linux Kernel 等镜像站;PostgreSQL 10 Beta 2 发布,Bug 修复;Apache Struts 2.5.12 发布,MVC 框架;阿里开源连接池 Druid 发布 1.1.1 版本;Ubuntu 17.10 惬意看片,支持 Intel/AMD 等硬解码
编辑部的故事 发布于 1周前 阅读 1635 点赞 1

游戏服务器架构演进(完整版)

王者荣耀技术分析第三篇,服务器架构模型分析...
wier 发布于 1周前 阅读 5572 评论 36 点赞 18

吃自己的狗食——eat your own dog food

为什么说“吃自己的狗食(eat your own dog food)”在开发软件产品中是一件很重要的事
国栋 发布于 1周前 阅读 701 评论 2

【源资讯 第35期】国产又出事?谷歌、火狐相继取消沃通的信任

【一周源资讯(2017.7.8-2017.7.14)】火狐,Google 和苹果均已经不信任沃通, Startcom 和 CNNIC 新颁发的证书,微软浏览器虽然没什么动静,但近日Ubuntu 16.04 LTS 已登录 Windows Store……
编辑部的故事 发布于 1周前 阅读 3265 评论 11 点赞 1

10个JavaScript难点

**译者按:**能够读懂这篇博客的JavaScript开发者,运气不会太差... 原文: [10 JavaScript concepts every Node.js programmer must master](http://www.infoworld.com/article/3196070/node-js/10-javascript-concepts-nodejs-programmers-must-master.html) 译者: [Fundebug](https://fundebug.com/) **为了保证可读性,本文采用意译而非直译,并且对示例代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。** ### 1. 立即执行函数 **立即执行函数**,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作: ```javascript (function() { // 代码 // ... })(); ``` **function(){…}**是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用了这个函数。**立即执行函数**也可以理解为立即调用一个匿名函数。**立即执行函数**最常见的应用场景就是:将var变量的作用域限制于你们函数内,这样可以避免命名冲突。 ### 2. 闭包 对于闭包(closure),当外部函数返回之后,内部函数依然可以访问外部函数的变量。 ```javascript function f1() { ...
Fundebug 发布于 1周前 阅读 1061

Java学习路线图

JAVA学习路线图,特此声明; 仅希望对热爱JAVA学习有所帮助 如若转载或者使用本图,请注明出处,避免后期出现版权问题,谢谢!!!   JAVA学习路线图 此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为 JAVA攻城狮。希望对大家的学习有所帮助 阶段1   1:学习HTML     2:学习CSS    3:Javascript    4:jquery    5:xml解析   6:Bootstrap      阶段2   7:JAVAse基础      8:mysql数据库     9:Powerdesigner   10:JDBC    11:JAVAWEB        阶段三 12:oracle         13:struts2         14:Hibernate       15:Spring 阶段四 16:Maven         17:SpringMVC      18:MyBatis Java学习交流QQ群:523047986  禁止闲聊,非喜勿进!
Java程序员-10 发布于 6天前 阅读 993 点赞 1

使用Go和Let's Encrypt证书部署HTTPS

为什么要使用HTTPS?使用HTTPS的途径有哪些?如何用Go来部署HTTPS?拿出你的小本本,你要的干货都在这儿! HTTPS的好处我们已在之前的文章中提高好多。它加密浏览器和服务器之间的流量,保障你密码传输的安全,让你的页面加载速度飞快,有助于网站的SEO优化还有对HTTP网站百般嫌弃的浏览器厂商......这些都是使用HTTPS的理由。那么问题来了,怎样可以又快又好地部署HTTPS呢? 使用第三方提供的HTTPS 比如说CloudFlare,他们的免费方案为你那仅支持HTTP的网站提供仿HTTPS代理服务。 要使用CloudFlare: 配置你的域,使用CloudFlare的DNS服务器 在CloudFlare的DNS设置中,将域指向你的服务器,并通将“状态”设为“DNS和HTTP代理服务器(CDN)” 在CloudFlare的加密设置中,将SSL设为“灵活”(该选项使浏览器通过HTTPS与CloudFlare对话,CloudFlare通过HTTP与浏览器对话) 在web管理界面配置CloudFlare的HTTPS代理,提供你的服务器的IP地址。 除此之外,还要启用“总是使用HTTPS”选项 浏览器与CloudFlare对话,CloudFlare负责提供SSL证书,并代理通向你的服务器的通信。由于额外的通信量,这可能会减慢网络速度,也可能由于CloudFlare服务器比你的服务器要快(变得更快是他...
亚洲诚信 发布于 1周前 阅读 710 评论 3

我的web前端面试经历————百度

写在前面的话 博主就读于电子科技大学,大三狗一枚! 面试是个漫长的过程,从海投到收获电话面试,一面、二面、三面,一个步骤出错那么后面就宣告终结。同时,面试过程中你也可能会遇到一些面试官的刁难,甚至部分面试官会说些比较打击你的话,但是大部分面试官都是很棒的! 面试前的准备 基础知识 必须有牢固的基础知识,足够丰富的项目经历(就我而言差不多是三个完整项目经历,时间累计差不多接近一年)。 至少这上面的面试题你能全答出来,说得足够清楚! web前端面试宝典1 web前端面试宝典2 表述能力 表述能力,你要能把你的答案给面试官描述清楚,注意专业词汇,这将大大提高面试官对你的印象分! 简历 简历尽量一页,不要超过两页。简历内容要直奔主题,姓名、电话、邮箱、学校、项目经历!兴趣爱好之类的大部分面试官会视为垃圾信息直接过滤掉,如果你Github有什么star很多的项目千万记得贴上,这点加分非常高!如果你有自己的博客,博客上有一些含金量较高的文章的话也记得贴上自己的博客。当然最重要的一块肯定是你掌握了哪些技术,但是千万不要用网上现在比较火的进度条去表示你对技术的掌握情况,这是非常愚蠢的行为,到底什么算掌握、熟悉、精通? 简历内容,总...
前端攻城狮-Dawn 发布于 1周前 阅读 591

Java学习路线图

JAVA学习路线图,特此声明; 仅希望对热爱JAVA学习有所帮助 如若转载或者使用本图,请注明出处,避免后期出现版权问题,谢谢!!!   JAVA学习路线图 此乃是java攻城狮的学习路线图,由简到繁,由易到难,一步步的学习,最后成为 JAVA攻城狮。希望对大家的学习有所帮助 阶段一   1:学习HTML     2:学习CSS    3:Javascript    4:jquery    5:xml解析   6:Bootstrap      阶段二   7:JAVAse基础      8:mysql数据库     9:Powerdesigner   10:JDBC    11:JAVAWEB        阶段三 12:oracle         13:struts2         14:Hibernate       15:Spring 阶段四 16:Maven         17:SpringMVC      18:MyBatis Java学习交流QQ群:523047986  禁止闲聊,非喜勿进!
Java程序员-10 发布于 3天前 阅读 493

数据库中间件 MyCAT源码分析 —— 跨库两表Join

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. ShareJoin](#) - [3.1 JoinParser](#) - [3.2 ShareJoin.processSQL(...)](#) - [3.3 BatchSQLJob](#) - [3.4 ShareDBJoinHandler](#) - [3.5 ShareRowOutPutDataHandler](#) - [4. 彩蛋](#) ------- # 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库**两**表 Join。虽然如此,已经能够满足我们大部分的业务场景。况且,Join 过多的表可能带来的性能问题也是很麻烦的。 本文主要分享: 1. 整体流程、调用顺序图 2. 核心代码的分析 前置阅读:[《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?yunai)。 OK,Let's Go。 # 2. 主流程 当执行...
芋艿V 发布于 2周前 阅读 1277 评论 1 点赞 2

spring-boot & ffmpeg 搭建一个音频转码服务

提供一个音频转码服务,主要是利用ffmpeg实现转码,利用java web对外提供http服务接口
六月依 发布于 2周前 阅读 1820 评论 6 点赞 6

Spring Boot 系列(八)@ControllerAdvice & 拦截异常并统一处理

在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。
神奇Sam 发布于 7天前 阅读 305 点赞 1

Java Web架构知识整理——记一次阿里面试经历

  “你学习一门技术的最佳时机是三年前,其次是现在。”这话从来很灵验。经过这次面试,觉得需要整理下Java Web相关的资料,以便自己提高或者更快适应可能面临的新的工作。   首先谈谈Java Web需要掌握哪些东西。这里是一些知识点的搜集,暂不做详细说明,欢迎各位博友补充指正。 1.底层 Java语言相关的就不说了,首先是JVM的结构和工作原理。比较重要的是Java内存模型,各种GC算法,Classloader的加载原理等。个人对底层的一些东西还算比较了解,所以不过多纠结,实际上程序编译链接过程以及二进制文件的处理还是很值得研究的。 JVM监控及调优。作为一个开发人员并不一定需要非常熟悉JVM调优的方法,但如果具备JVM监控及调优的能力,将让你对程序运行状况了如指掌,对于问题定位也会敏感得多。 Java多线程。对于线程安全的理解,以及如何在自己的程序中避免多线程造成的不一致问题等。 I/O。Java中常常提到的是BIO/NIO,即阻塞型I/O与非阻塞型I/O,其实并不难理解,结合Linux中的同步I/O和异步I/O的实现原理,基本都是相通的,每种I/O方式解决的问题,又存在什么问题,为什么使用epoll。 2.Servlet   Servlet是运行于服务端的java程序,一般实现自己的Java服务端应用...
Java程序员-10 发布于 1周前 阅读 539

不用进小程序,你也可以看到小程序内的信息更新!

用户使用微信小程序的时候,状态的更新一直都是比较受关注的地方。微信小程序内的状态信息发生改变的时候,用户需要进入小程序内才能够看到有一定的不便性。
wemall微信商城 发布于 25分钟前

Docker 容器镜像删除

1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q) 2.查看当前有些什么images docker images 3.删除images,通过image的id来指定删除谁 docker rmi <image id> 想要删除untagged images,也就是那些id为<None>的image的话可以用 docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 要删除全部image的话 docker rmi $(docker images -q)
xiongs 发布于 28分钟前

Python-requests网络库详解

layout: default title:Python-requests网络库详解 date: 2017-07-24 16:34:00 tags: --- # Python-requests网络库详解 Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner. ###requests安装 通过pip安装 ``` pip install requests ``` 源码安装 ``` $ git clone git://github.com/kennethreitz/requests.git $ cd requests $ python setup.py install ``` 简单get请求 ``` import requests import json r = requests.get('http://www.baidu.com') print r.status_code # 状态码 print r.text # text格式 con = r.content #内容这里返回的是html标签 ``` POST请求 ``` # 把参数名和值已键值对的方式 放到字典里面 payload = dict(key1='value1', key2='value2') r = requests.post('http://httpbin.org/post', data=payload) #也可以以json格式上传 r = requests.post('https:www.baidu.com, data=json.dumps({'some': 'data'})) print(r.text) { ... "form": { "key2": "value2",...
她吃西红柿 发布于 31分钟前

记录全部log

anroid monitor 输出内容全部打印
cicue 发布于 32分钟前

【福利】蓝色巨人的云计算PaaS平台IBM Bluemix免费试用!

IBM Bluemix,包含认知、物联网、大数据分析、安全、DevOps、应用、应用整合、移动、计算、网络、存储等 11 大类共 140 多个服务的云计算平台。
IBM Bluemix

Java并发编程:volatile关键字解析

[](http://www.cnblogs.com/dolphin0520/p/3920373.html)
zh151832 发布于 34分钟前

mongodb的基础知识和增删改查相关操作

1.概念: 数据库 database   集合  collection(mysql中的表) 文档  document (mysqlZ中的行) 域   field      (mysql中的字段,列) 索引  index  主键  primary(自动将_id字段设置为主键) Mongodb 不支持表连接(table joins) 2.数据库相关介绍 1)一个mongodb中可以建立多个数据库 2)MongoDB的默认数据库为"db",该数据库存储在data目录中 3)MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中 4)系统保留的数据库: admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。 local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息 5)集合:       集合类似于关系数据库中的表.      集合存在于数据库中,集合没有固定的结构,意味着在对集合可以插入不同格式和类型的数据       第一个文档插入时,集合就会被创建   ...
渺渺星辰 发布于 38分钟前 阅读 1

docker swarm模式指定宿主机运行服务pending问题

swarm模式指定宿主机运行服务遇到的问题
无心灬快语 发布于 47分钟前

Elastic-Job作业动态维护

Elastic-Job 作业动态维护,Elastic-Job定时任务动态加载
javahao 发布于 48分钟前 阅读 1

神奇的博客

不需要摘要
Koma 发布于 54分钟前

渗透测试Python编程之Scan Webservices for FTP

一、环境     windows10 + python2.7 二、思路     扫描文件后缀 三、code #!/usr/bin/env python # coding=utf-8 import ftplib def returnDefault(ftp): try: dirList = ftp.nlst() except: print '[-] Could not list directory contents.' print '[-] Skipping To Next Tatget.' return retList = [] for fileName in dirList: fn = fileName.lower() if '.php' in fn or '.html' in fn or '.asp' in fn: print '[+] Found default page: ' + fileName retList.append(fileName) return retList host = '192.168.0.0' userName = 'root' passWord = '12456' ftp = ftplib.FTP(host) ftp.login(userName, passWord) returnDefault(ftp)  ...
MedivhXu 发布于 1小时前

存储过程学习 10种语法

  1、 创建语法 create proc | procedure pro_name [{@参数数据类型} [=默认值] [output], {@参数数据类型} [=默认值] [output], .... ] as SQL_statements  2、 创建不带参数存储过程 --创建存储过程 if (exists (select * from sys.objects where name = 'proc_get_student')) drop proc proc_get_student go create proc proc_get_student as select * from student; --调用、执行存储过程 exec proc_get_student; 3、 修改存储过程 --修改存储过程 alter proc proc_get_student as select * from student; 4、 带参存储过程  --带参存储过程 if (object_id('proc_find_stu', 'P') is not null) drop proc proc_find_stu go create proc proc_find_stu(@startId int, @endId int) as select * from student where id between @startId and @endId go exec proc_find_stu 2, 4; 5、 带通配符参数存储过程  --带通配符参数存储过程 if (object_id('proc_findStudentByName', 'P') is not null) drop proc proc_findStudentByName go create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20...
颖辉小居 发布于 1小时前

spring3.2课程

  spring3.2入门到大神(备java基础、jsp、servlet)视频教程:框架介绍,IoC思想、DI依赖注入、Bean的实例方式、Bean种类、Bean作用域范围、Bean生命周期管理、依赖注入、注解装配Bean、整合Junit测试、Web开发集成spring、AOP思想、AOP原理解剖、spring 传统aop开发、JdbcTemplate模板使用、C3P0数据源配置、声明式事务管理、注解事务管理。ssh XML整合、SSH注解整合。      课程目标:掌握框架知识,IoC思想、DI依赖注入、Bean的实例方式、Bean种类、Bean作用域范围、Bean生命周期管理、依赖注入、注解装配Bean、整合Junit测试   适合人群:对java有些基础的人
课课家IT 发布于 1小时前

远程共享工具USB Network Gate v8.0.1828发布,支持Windows Server 2016

USB Network Gate(原USB以太网连接器)可以通过以太网(互联网/局域网/广域网)在您的计算机上轻松连接一个或多个远程USB设备。如果你是在其他国家或在隔壁的办公室,那也没关系,你可以随时地使用远程打印机,扫描仪,摄像头,USB加密狗或其他任何东西,就好像他们是直接连接到你的电脑上的。 【USB Network Gate v8.0.1828点击下载>>>】 增加以下本地化: 中文 荷兰语 法语 德语 意大利语 日语 韩语 波兰语 葡萄牙语 俄语 西班牙语 新增: 显示每个连接双向传输的数据量。 显示每个连接的双向数据传输速度。 其他客户端连接到本地时显示客户端的IP地址(而不是“localhost”)。 如果共享设备在一段时间内未激活,增加客户端自动断开选项。 防止共享设备在断开连接后重新启动的选项。 完全支持Windows Server 2016。 改进: 与高分辨率显示器的GUI兼容性。 USB Network Gate服务器与客户端之间网络连接的性能。 驱动程序使用WHQL进行数字签名。 修复: 当从USB集线器共享设备时执行“unshare-all-usb-ports”命令,该USB集线器与设备断开连接,并未在列表中。 出现几个BSOD。 客户端命令行中显示的共享设备的描述和状态不准确。 使用系统中显示的USB驱动器作为SCSI(例如...
Harriet666 发布于 1小时前

C# .net core XmlDocument 使用Load和Save方法

代码: ``` string path ="C://xxx/file" XmlDocument xmlDoc = new XmlDocument(); #if NET462 xmlDoc.Load(path); #else string content = File.ReadAllText(path); xmlDoc.LoadXml(content.Trim()); #endif …… …… #if NET462 xmlDoc.Save(path); #else FileStream fs = new FileStream(path, FileMode.Create); XmlWriterSettings settings = new XmlWriterSettings() { Indent = true }; XmlWriter writer = XmlWriter.Create(fs, settings); xmlDoc.Save(writer); #endif ``` *参考:* - [ASP .NET Core write to XML-file](https://stackoverflow.com/questions/41882854/asp-net-core-write-to-xml-file)...
Swire 发布于 1小时前

XHR failed loading: 原因:CORS 头缺少 'Access-Control-Allow-Origin'

XHR failed loading: 原因:CORS 头缺少 'Access-Control-Allow-Origin'
yizhichao 发布于 1小时前

最大似然,最小二乘,Ridge 回归,LASSO 回归,Laplace 分布, Gaussian 分布

最小二乘法可以从Cost/Loss function角度去想,这是统计(机器)学习里面一个重要概念,一般建立模型就是让loss function最小,而最小二乘法可以认为是 loss function = (y_hat -y )^2的一个特例,类似的想各位说的还可以用各种距离度量来作为loss function而不仅仅是欧氏距离。所以loss function可以说是一种更一般化的说法。 最大似然估计是从概率角度来想这个问题,直观理解,似然函数在给定参数的条件下就是观测到一组数据realization的概率(或者概率密度)。最大似然函数的思想就是什么样的参数才能使我们观测到目前这组数据的概率是最大的。 类似的从概率角度想的估计量还有矩估计(moment estimation)。就是通过一阶矩 二阶矩等列方程,来反解出参数。 各位有人提到了正态分布。最大似然估计和最小二乘法还有一大区别就是,最大似然估计是需要有分布假设的,属于参数统计,如果连分布函数都不知道,又怎么能列出似然函数呢? 而最小二乘法则没有这个假设。 二者的相同之处是都把估计问题变成了最优化问题。但是最小二乘法是一个凸优化问题,最大似然估计不一定是。   知乎用户 其实我觉着你这个答案站的角度才比较符合这个问题的本质。 补充一点点:从优化的角...
tantexian 发布于 1小时前

顺时针打印矩阵

# 题目描述 对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 给定int矩阵mat,以及它的维数n x m,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。 # 测试样例 ``` [[1, 2], [3, 4]], 2, 2 返回:[1, 2, 4, 3] ``` # 解题思路 要控制好每次的转向 # 解决方案 ``` import java.util.*; public class Printer { private enum Direction { RIGHT, DOWN, LEFT, UP; } public int[] clockwisePrint(int[][] mat, int n, int m) { HashSet set = new HashSet(); int[] rs = new int[n * m]; Direction dir = Direction.RIGHT; int i = 0, j = -1; int idx = 0; while (set.size() < rs.length) { if (dir == Direction.RIGHT) { if (j < m - 1 && !set.contains(String.format("%d,%d", i, j + 1))) { j++; rs[idx++] = mat[i][j]; set.add(String.format("%d,%d", i, j)); } else { dir = Direction.DOWN; } } else if (dir == Direction.DOWN) { if (i < n - 1 && !set.contains(String.format("%d,%d", i + 1, j))) { i++; rs[idx++] = mat[i][j]; set.add(String.format("%d,%d", i, j)); } else { dir = Direction.LEFT; } } else if ...
圣洁之子 发布于 1小时前

Spark 获取文本内最大的前3个数字

``` package cn.hhb.spark.core; import org.apache.spark.Accumulator; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function; import org.apache.spark.api.java.function.PairFunction; import org.apache.spark.api.java.function.VoidFunction; import scala.Tuple2; import java.util.Arrays; import java.util.List; /** * Created by dell on 2017/7/13. */ public class Top3 { public static void main(String[] args) { SparkConf conf = new SparkConf() .setAppName("AccumulatorVariable") .setMaster("local") .set("spark.testing.memory", "2147480000"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD lines = sc.textFile("C://number.log"); JavaPairRDD pairs = lines.mapToPair(new PairFunction() { @Override public Tuple2 call(String s) throws Exception { return new Tuple2(Integer.valueOf(s), s); } }); JavaPairRDD sortPairs = pairs....
别寒 发布于 1小时前

BufferedImage与Image

一、BufferedImage类型与Byte[]流之间相互转化 1.需要用到的类 java.awt.image.BufferedImage; javax.imageio.ImageIO; java.io.*; 2.为什么要将BufferedImage转为byte数组     在传输中,图片是不能直接传的,因此需要把图片变为字节数组,然后传输比较方便;只需要一般输出流的write方法即可;而字节数组变成BufferedImage能够还原图像; 3.如何取得BufferedImage BufferedImage image = ImageIO.read(new File("1.gif")); 4.BufferedImage ------>byte[] ImageIO.write(BufferedImage image,String format,OutputStream out);方法可以很好的解决问题; 参数image表示获得的BufferedImage; 参数format表示图片的格式,比如“gif”等; 参数out表示输出流,如果要转成Byte数组,则输出流为ByteArrayOutputStream即可; 执行完后,只需要toByteArray()就能得到byte[]; 5.byte[] ------>BufferedImage ByteArrayInputStream in = new ByteArrayInputStream(byte[]b); //将b作为输入流; BufferedImage image = ImageIO.read(InputStream in); //将in作为输入流,读取图片存入image中,而这里in可以为ByteArrayInputStream(); 6.显示BufferedImage public void p...
MySkyC 发布于 1小时前

webpack 入门

# webpack - webpack 会把js、css,图片打包成一个js文件 - 将各种资源,js、样式、图片都作为模块来使用和处理 - 这里是列表文本可以让各个模块进行加载,预处理,再进行打包,有grunt和gulp所有基本功能 ## 优点: - 支持commonjs和AMD模块 - 支持很多模块加载的调用,可以使模块加载器更灵活定制 - 可以通过配置打包成多个文件,有效利用浏览器的缓存功能提升性能 - 使用模块加载器,可以支持sass,less等处理器进行打包并且支持静态资源样式及图片进行打包 ## loaders webpack最核心功能,通过使用不同的loader,webpack通过调用外部脚本或工具可以对各种各样的格式的文件进行处理,比如: - 1,分析json文件并把它转化成为js文件 - 2,将es6文件转换成现在浏览器可识别的js文件 - 3,jsx文件转换成js文件 ## loader使用 loader需要单独安装并且需要在webpack.config.js下的modules关键字下进行配置,loaders的配置选项可以包括以下几个方面: - test:一个匹配loaders处理文件的扩展名的正则表达式 - loader:loader名称 - include/exclude:收到添加必须出来的文件或屏蔽不需要处理的文件 - query:为loaders提供额外的设置选项 ## webpack操作css npm install --sav...
aeato 发布于 1小时前

数据库中间件 MyCAT 源码分析 —— SQL ON MongoDB

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. 查询操作](#) - [4. 插入操作](#) - [5. 彩蛋](#) ------- # 1. 概述 可能你在看到这个标题会小小的吃惊,MyCAT 能使用 MongoDB 做数据节点。是的,没错,确实可以。 吼吼吼,让我们开启这段神奇的“旅途”。 本文主要分成四部分: 1. 总体流程,让你有个整体的认识 2. 查询操作 3. 插入操作 4. 彩蛋,😈彩蛋,🙂彩蛋 建议你看过这两篇文章(_非必须_): 1. [《MyCAT 源码分析 —— 【单库单表】插入》](http://www.yunai.me/MyCAT/single-db-single-table-insert/?self) 2. [《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?self) # 2....
芋艿V 发布于 5天前 阅读 1330 评论 17 点赞 1

Golang依赖管理工具:glide从入门到精通使用

## 介绍 不论是开发Java还是你正在学习的Golang,都会遇到**依赖管理**问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍[gilde](https://github.com/Masterminds/glide)。 glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷。罗列一下golang的 get 子命令管理依赖有很多大缺陷: * 能拉取源码的平台很有限,绝大多数依赖的是 github.com * 不能区分版本,以至于令开发者以最后一项包名作为版本划分 * 依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个 go get * 只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor) ## 安装 ### Golang环境设置 采用vendor目录特性,Go 1.5 做为试验特性加入(需要指定 GO15VENDOREXPERIMENT=1 环境变量),并在 Go 1.6 正式引入的一个概念。多数 go 依赖解决方案都基于它的。GO15VENDOREXPERIMENT 是 Go 1.5 版本新增的一个环境变量,如果将值改为 1 则表示启用。它可以将项目根目录名为 vendor 的目录添加到 Go 的库搜寻路径中,实现一个局部依赖的效果...
梦朝思夕 发布于 5天前 阅读 2102 评论 19 点赞 6

捋一捋JavaScript对象的继承

文章针对不理解继承的程序员朋友去剖析和理解继承.
Jill1231 发布于 5天前 阅读 1811 评论 5 点赞 7

spring-boot & zxing 搭建二维码服务

搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片
六月依 发布于 6天前 阅读 2375 评论 9 点赞 6

spring AOP是什么?你都拿它做什么?

由浅入深手把手带你搞定spring Aop。
liugh_develop 发布于 6天前 阅读 3953 评论 27 点赞 17 打赏 5

Spring思维导图,让Spring不再难懂(mvc篇)

>写在前面 生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。 温故而知新,今天一起来复习一下spring mvc的内容吧。 >spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 ![原理.png](http://upload-images.jianshu.io/upload_images/4120002-9409cf62de5e6d39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * (1) Http请求:客户端请求提交到DispatcherServlet。 * (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 * (3) 调用处理器:DispatcherServlet将请求提交到Controller。 * (4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。 * (6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。 * (8) Http响应:视图负责将结果显示到客户端。 >主要注解 ![spring mvc注解....
java思维导图 发布于 1周前 阅读 8489 评论 26 点赞 32

游戏服务器架构演进(完整版)

王者荣耀技术分析第三篇,服务器架构模型分析...
wier 发布于 1周前 阅读 5572 评论 36 点赞 18

穷人也能拥抱‘持续集成’与‘持续交付’

首先说一说为什么说穷人,笔者自己买了一台阿里云的ECS服务器,最开始是一台便宜的单核1G的服务器(其实前面还有更苦的,一把辛酸泪就不说了),苦了它了,里面跑了一堆服务,诸如Tomcat、Nginx、MySQL、Redis、RabbitMQ、JVM等等,发现本来就很吃力,后来又想搞个持续集成部署个Jenkins,结果搞挂了几次服务器,每次内存飙到95%(要知道Gitlab要求机器最好为4G),只能重启服务器了。又没钱升级配置,只能看看有什么服务比较好。
橙子先生 发布于 1周前 阅读 2986 评论 19 点赞 2 打赏 1

数据库中间件 MyCAT源码分析 —— 跨库两表Join

![wechat_mp](http://www.yunai.me/images/common/wechat_mp.jpeg) > 🙂🙂🙂关注**微信公众号**有福利: > 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表 > 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址** > 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。 > 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。 ------- - [1. 概述](#) - [2. 主流程](#) - [3. ShareJoin](#) - [3.1 JoinParser](#) - [3.2 ShareJoin.processSQL(...)](#) - [3.3 BatchSQLJob](#) - [3.4 ShareDBJoinHandler](#) - [3.5 ShareRowOutPutDataHandler](#) - [4. 彩蛋](#) ------- # 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库**两**表 Join。虽然如此,已经能够满足我们大部分的业务场景。况且,Join 过多的表可能带来的性能问题也是很麻烦的。 本文主要分享: 1. 整体流程、调用顺序图 2. 核心代码的分析 前置阅读:[《MyCAT 源码分析 —— 【单库单表】查询》](http://www.yunai.me/MyCAT/single-db-single-table-select/?yunai)。 OK,Let's Go。 # 2. 主流程 当执行...
芋艿V 发布于 2周前 阅读 1277 评论 1 点赞 2

你可能不知道的前端知识点之:IntersectionObserver

本文是我的 [你可能不知道的前端知识点](https://github.com/justjavac/the-front-end-knowledge-you-may-dont-know) 系列的第 5 个知识点。 ## 简介 - 你想跟踪 DOM 树里的一个元素,当它进入可视区域时得到通知。 - 你想实现延迟加载图片功能 - 你需要知道用户是否真的在看一个广告 banner。 你可以通过绑定 `scroll` 事件或者用一个周期性的定时器,然后在回调函数中调用元素的 [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) 获取元素位置实现这个功能。但是,这种实现方式性能极差,因为每次调用 `getBoundingClientRect()` 都会强制浏览器 [重新计算整个页面的布局](https://gist.github.com/paulirish/5d52fb081b3570c81e3a) ,可能给你的网站造成相当大的闪烁。 `IntersectionObserver` 就是为此而生的,它可以检测一个元素是否可见,`IntersectionObserver` 能让你知道一个被观测的元素什么时候进入或离开浏览器的视口。 ## 兼容性 - Chrome 51+(发布于 2016-05-25) - Android 5+ (Chrome 56 发布于 2017-02-06) - Edge 15 (2017-04-11) - iOS **不支持** ## Polyfill WICG 提供了一个 [p...
justjavac 发布于 2周前 阅读 982 点赞 3

opencv+python机读卡识别整合版

通过随意一张机读卡的照片,识别其中选择题题号,选项,以及相关数字识别
Digimon 发布于 2周前 阅读 2602 评论 10 点赞 17

如何理解并正确使用MySql索引

1、概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构 2、索引的优点 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度 2、帮助服务器避免排序和临时表 3、可以将随机I/O变为顺序I/O 3、索引的创建 3.1、主键索引 ALTER TABLE 'table_name' ADD PRIMARY KEY 'index_name' ('column'); 3.2、唯一索引 ALTER TABLE 'table_name' ADD UNIQUE 'index_name' ('column'); 3.3、普通索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column'); 3.4、全文索引 ALTER TABLE 'table_name' ADD FULLTEXT 'index_name' ('column'); 3.5、组合索引 ALTER TABLE 'table_name' ADD INDEX 'index_name' ('column1', 'column2', ...); 4、B+Tree的索引规则 创建一个测试的用户表 DROP TABLE IF EXISTS user_test; CREATE TABLE user_test( id int AUTO_INCREMENT PRIMARY KEY, user_name varchar(30) NOT NULL, sex bit(1) NOT NULL DEFAULT b'1', city varc...
FEINIK 发布于 2周前 阅读 5203 评论 23 点赞 27 打赏 2

捋一捋JavaScript创建对象

##创建对象 回顾前面我们谈到通过object构造函数创建单个对象 ``` // 创建一个object的实例,然后再为它添加属性和方法 var person = new Object(); person.name = "jill"; person.age = 18; person.job = "software Engineer"; person.sayName = function () { alert(this.name); } ``` 通过对象字面量创建单个对象 ``` var person = { name:"jill", age:18, job:"software Engineer", sayName:function () { alert(this.name); } } ``` 通过object构造函数或对象字面量创建单个对象的方式有个缺点:**使用同一个接口创建很多对象,会产生大量的重复代码** ###工厂模式 **解决了创建多个相似对象的问题** ``` function createPerson(name,age,job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function () { alert(this.name); } return o; } var person1 = createPerson('jill',18,'software'); var person2 = createPerson('vane',23,'student'); ``` 工厂模式虽然解决了创建多个相似对象的问题,但却没有解决**对象识别的问题(即怎样知道一个对象的类型)** -------------------------------------------- ###构造函数模式 **解决...
Jill1231 发布于 3周前 阅读 2256 评论 20 点赞 11

MySQL基于gtid特性与xtrabackup的数据恢复

通过备份文件新建从库,将binlog跑到指定的gtid位置,可以将数据恢复到指定的时间点。
o翡翠谷o 发布于 3周前 阅读 1642 评论 2 点赞 2

深入JVM虚拟机之全书脑图

有的地方实在无法展开,文件太大了,压缩了70%才能上传
RippleChan 发布于 3周前 阅读 6357 评论 72 点赞 42

关于线程,还有这些是你需要知道的!

在日常开发中,线程常常被用作为提升程序效率的重要手段。在CoorChice的这篇文章中,CoorChice介绍了线程的基本运作。
CoorChice 发布于 3周前 阅读 3534 评论 25 点赞 17

对MySQL交换分区的实践

前言 在介绍交换分区之前,我们先了解一下 mysql 分区。 数据库的分区有两种:水平分区和垂直分区。而MySQL暂时不支持垂直分区,因此接下来说的都是水平分区。水平分区即:以行为单位对表进行分区。比如:按照时间分区,每一年一个分区等。 在MySQL中,分区是可以交换的,可以将一个分区表中的一个分区和一个普通表中的数据互换。   交换分区的实现 1、交换分区的语法 alter table pt exchange partition p with table nt; 解释: 将 分区表pt 的 分区p 和 一个普通表nt 中的数据 进行互换。 交换的前提条件: 普通表nt 不为临时表,且不是分区表。 表结构和分区表pt的结构一致。 普通表nt 没有外键引用。 普用表nt 若为非空。在MySQL5.6以及之前的版本,必须在分区的范围内;在MySQL5.7之后则可以不再其分区范围内,也依然会成功存入该分区中。 2、实验 交换分区 (1) 创建一个分区表,并插入数据 # 创建一个 分区表e CREATE TABLE e ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30) ) PARTITION BY RANGE (id) ( PARTITION p0 VALUES LESS THAN (50), PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LES...
star_glm 发布于 3周前 阅读 1847 评论 4 点赞 4

从王者荣耀聊聊游戏的帧同步

通过王者荣耀,我们来聊一聊帧MOBA游戏的技术实现以及同步方式
wier 发布于 3周前 阅读 7221 评论 57 点赞 31

比特币深层技术原理浅析

这是一篇主要针对技术小白的文章。本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状。
中成才 发布于 3周前 阅读 3662 评论 30 点赞 11 打赏 4

道哥:我人生有两大选择,为的却都是同一件事

视频在这里:https://v.qq.com/x/page/b0519geiro4.html 《初心》十集技术人物纪录片 | 第八集 由 InfoQ 二叉树 出品 吴瀚清,又称刺、aullik5、大风、道哥、小黑,现任阿里云首席安全研究员,云盾负责人。《白帽子讲Web安全》作者,微信公众号:道哥的黑板报。 少年时代 我从小到大一直都是学霸,除了上大学之后。 我出生在一个医生和教师的家庭,在湖南大学长大,周围的同学可能都是大学老师的孩子,这种环境的熏陶让我养成了在学习方面比较刻苦的习惯,考试总是拿第一第二。 但其实这种环境比较压抑人的个性,也就导致我的内心实际上还是有一点点的叛逆,在进入大学没人管之后,就开始叛逆,然后开始研究黑客技术。 我大学没有做对一件事情,可能唯一做对的事情就是把幻影(注:吴瀚清在大学期间创办的安全社区)做下去了。 我觉得幻影有它有运气的地方,也有它没有运气的地方,其实当时创办它没有那么复杂的想法,纯粹是出于技术上的一种狂热,所以就成立了这么一个团体。 我们没有收入来源,在当时遭遇了一些 DDOS 攻击,然后就把它给关掉了,到今天比较惋惜。 难能可贵的是其中有一些人把他们做的事情一直延续到了今天,这些人基本上都成为了现在这些安全公司的一些...
夕水溪下 发布于 3周前 阅读 2099 评论 9 点赞 4
顶部
利发国际官方网