- 博客(90)
- 资源 (14)
- 收藏
- 关注
原创 微信公众号实现扫码支付
今天给大家讲讲微信扫码支付,如果之前未接触过微信支付的朋友可以看看我之前发的文章(基于weixin-java-tools集成微信小程序支付功能),其实微信支付和微信扫码流程都是一样的,只是调用统一下单传入参数及返回参数有区别。 1.微信支付统一下单URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder 这里只...
2019-06-17 08:36:06
33924
原创 微服务架构的使用场景
随着互联网的高速发展,微服务现在已经成了热门话题,我们今天就来聊聊微服务架构的使用场景,在之前,我们先讲讲单体架构,单体架构就是我们最传统的项目前端代码和后端代码耦合在一起。单体架构的适用场景 业务场景简单,功能不复杂,研发人员较少。 公司处于创业初期:为了生存,需要的是快速开发出功能,然后到市场上试错。 性能要求及其苛刻:...
2019-06-15 12:17:06
6197
1
原创 基于weixin-java-tools集成微信小程序支付功能
目前,公司正在把业务从公众号向小程序迁移,本人负责订单功能的开发,现在把微信小程序接入微信支付这块的知识分享给大家,可能有部分人对微信支付不太了解,可以参考下面的微信支付流程图。微信支付流程图我是用weixin-java-tools这个开源框架做的,目前这个开源社区还很活跃,有兴趣的朋友可以研究一下。weixin-java-tools微信支付功能集成如下:登...
2019-06-05 14:24:55
2019
3
原创 爬虫原理
前几天,有朋友问我爬虫程序怎么实现的,今天,我给大家讲讲爬虫,讲的不好,请大家多提提宝贵的意见。今天,我主要从三部分开始讲,网络连接,爬虫原理,网页构造。网络连接 像是在地铁里的自助饮料售货机上购买饮料一样:购买者只需选择所需饮料,投入硬币(或纸币),自助饮料售货机就会弹出相应的商品。网络连接也正是如此,如下图所示,本机电脑(购买者)带着请求头和消息体(硬币和所需...
2019-06-01 11:50:16
1951
原创 java服务器端集成微信小程序
weixin-java-tools是轻量性的,扩张性比较强的微信应用第三方插件,今天我给大家讲一下如何在spring boot应用中集成微信小程序相关API。 1.pom文件配置<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-j...
2019-05-13 21:48:32
1940
原创 python实现mongodb数据导入到mysql
在实际项目中需要把mongodb数据库的数据迁移到mysql数据库,由于该功能只使用一次,因此使用python实现,代码量比较小,特此奉上自己的代码,供大家参考,谢谢!如有问题,请在下方留言,我会及时的回复。from pymongo import MongoClientimport pymysqlimport time#连接mysql数据库 后面加上 charset="u...
2019-04-27 19:56:39
2347
6
原创 Spring Data MongoDB 多个条件或查询
//查询是否选择全省 Criteria c1 = Criteria.where("relationOrgProductsScope").elemMatch(Criteria.where("seriesId").is(seriesId).and("provinceId").is(provinceId) .and("cityId").is(0).an...
2019-04-24 21:43:36
4973
原创 vue实现手机通讯录效果
页面效果如下,点击右侧的字母,可进行快速定位代码如下:<template> <div class="addressBook"> <div class="addressBook-search"> <van-search v-model="searchData.salesmanName" placeholder='输入
2019-02-25 09:06:01
8619
11
原创 JavaScript过渡
Vue.js 也可以和一些JavaScript配合使用,只需要调用JavaScript钩子函数,而不需要定义CSS样式。transition接受选项 css:false,将直接跳过CSS检测,避免CSS规则干扰过渡,需要在enter和leave钩子函数中调用done函数,明确过渡结束时间。此处将引入Velocity.js来配合使用JavaScript过渡。Velocity.js...
2019-02-06 20:17:46
1927
原创 vue css过渡及过渡钩子函数介绍
过渡系统是 Vue.js 为 DOM 动画效果提供的一个特性,它能在从DOM中插入移除时触发你的CSS过渡和动画 ,也就是说在DOM 发生变化时为其加特定的 class类名,Vue.js的过渡系统也支持javascript的过渡 ,通过暴露过渡系统的钩子函数,我们可以在DOM变化的特定时机对其进行属性的操作,产生动画效果。CSS过渡的用法<div v-if="show...
2019-02-06 00:38:08
991
原创 vue过滤器
过滤器定义 Vue.js 允许在表达式后面添加可选的过滤器,以管道符表示,例如:{{ message | capitalize }} 过滤器的本质是一个函数,接受管道符前面的值作为初始值,同时也能接受额外的参数, 返回值为经过处理后的输出值。多个过滤器也可以进行串联。例如: {{ message | filterA 'arg1' 'arg2' }}{{ me...
2019-02-04 23:03:34
161
原创 指令在Vue.js 2.0中的变化
由于指令在 Vue.js2.0 中发生了比较大的变化,Vue.js 2.0中的指令功能更为单一,很多和组件重复的功能和作用都进行了删除,指令也更专注于本身作用域的操作,而尽量不去影响指令外的 DOM 元素及数据。 钩子函数增加了一个 componentUpdated,当整个组件都完成了update 状态后即所有 DOM 都更新后调用该钩子函数,无论指令接受的参数是否发...
2019-02-03 23:10:55
261
原创 vue指令的高级选项
params 定义对象中可以接受一个 params 数组,Vue.js 编译器将自动提取自定义指令绑定元素 上的这些属性。例如:<div v-my-advance-directive a="paramA"></div> Vue.directive('my-advance-directive', { params : ['a'], bind : ...
2019-02-01 22:40:37
1207
原创 vue自定义指令基础
今天,我们讲讲vue自定义指令基础知识,主要包括指令如何创建,如何注册,以及指令的相关属性钩子函数。 指令的注册 我们通过以下方法注册一个全局自定义指令Vue.directive(name,definition) //name为指令名称必须保持一致性,definition为指令定义的对象 以上方法只是定义了一个指令,但并没有实现该指令...
2019-01-31 22:51:28
243
原创 vue集成汉字转拼音插件
一.需要引入的文件1.const.js文件,定义常量,文件内容如下:export const pinyin = { 'a': '\u554a\u963f\u9515', 'ai': '\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u8bf6\u6371\u55f3\u...
2019-01-30 08:44:17
13789
7
原创 vue指令
v-bindv-bind 主要用于动态绑定 DOM 元素属性(attribute),即元素属性实际的值是由 vm 实例中的 data 属性提供的。v-modelv-model 指令在第 2.2.3 小节中的表单控件中已经说明过了,这里就不再赘述了。该指 令主要用于 input、select、textarea 标签中,具有 lazy、number、debounce(2.0 废除)、 tr...
2019-01-29 08:41:16
455
原创 JavaScript基础
一个完整的 JavaScript 实现应该由下列以下三部分组成。一.核心(ECMAScript) ECMA-262 定义的 ECMAScript 与 Web浏览器没有依赖关系。实际上,这门语言本身并不包含输 入和输出定义。ECMA-262 定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。 我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境...
2019-01-28 22:49:29
142
原创 vue模板
其实,无论前端框架如何变化,它需要处理的事情依旧是模板渲染、事件绑定、处理 用户交互(输入信息或鼠标操作),只不过提供了不同的写法和理念。Vue.js 则会通过声 明一个实例 new Vue({...}) 标记当前页面的 HTML 结构、数据的展示及相关事件的绑定。 本章主要介绍 Vue.js 的构造函数的选项对象及用法,以及如何通过 Vue.js 来实现上述的常 规前端功能。...
2019-01-27 08:49:07
678
原创 Vue Hello world
现在我们来写一个vue的HelloWord代码如下:<div id="app"> <!--绑定vue对象中的mesage对象--> <h1>{{message}}</h1></div><script src='http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vu..
2019-01-26 13:16:01
194
原创 Vue.js简介
近几年,互联网前端行业发展得依旧迅猛,涌现出了很多优秀的框架,同时这些框架也正在逐渐改变我们传统的前端开发方式。Google 的 AngularJS、Facebook 的 ReactJS,这些前端 MVC(MVVM)框架的出现和组件化开发的普及和规范化,既改变了原有的开发思维和 方式,也使得前端开发者加快脚步,更新自己的知识结构。2014 年 2 月,原 Google 员工尤雨 溪公...
2019-01-25 23:43:40
841
2
原创 系统间数据同步方案
一.RabbitMQ分布式集群架构设计集群的目的允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行通过增加更多的节点来扩展消息通信的吞吐量1 集群配置方式RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovelcluster:不支持跨网段,用于同一个网段内的局域网可以随意的动态增加或者减少节点之间需要...
2019-01-24 23:21:58
3337
原创 Lucene索引详解
今天我给大家讲讲Lucene是如何索引文档的,索引文档就是把文档变成索引这种数据结构的过程。 文档是Lucene索引的基本单位,比文档更小的单位是字段,字段是文档的一部分,每个字段由名称、类型和取值组成。字段的取值一般为文本(字符串、字符流)、二进制类型和数值类型。Lucene中的字段类型主要有以下几种: TextField: ...
2019-01-23 23:44:51
1405
原创 Lucene分词详解
分词和查询都是以词项为基本单位,词项是词条化的结果。在Lucene中分词主要依靠Analyzer类解析实现。Analyzer类是一个抽象类,分词的具体规则是由子类实现的,所以对于不同的语言规则,要有不同的分词器 1. StopAnalyzer 停用词分词器:能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能。 2. StandardAnal...
2019-01-22 08:55:47
1472
原创 JVM类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与哪些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时稍微增加一下性能开销,但是却能为Java应用程序提供高度的灵活性,Java中天生可以动...
2019-01-21 08:41:32
125
原创 Lucene架构
先整体上看一下Lucene的架构设计图(见下图),先看上层应用,首先是信息采集的过程,文件系统、数据库、万维网以及手工输入的文件都可以作为信息采集的对象,也是要搜索的文档的来源,采集万维网上的信息一般使用网络爬虫。完成信息采集之后到Lucene层面有两大任务:索引文档和搜索文档,索引文档的过程完成由原始文档到倒排索引的构建过程,搜索文档用以处理用户查询。应用层的第三部分就是用户接口,用...
2019-01-20 22:21:30
434
原创 Lucene简介
Lucene是一个开源的全文检索引擎工具包,最初由Doug Cutting开发。早在1997年,资深全文检索专家 Doug Cutting用一个周末时间,使用Java语言创作了一个文本搜索的开源函数库,目的是为各种中小型应用软件加入全文搜索功能,不久以后,Lucene诞生了,2000年Lucene称为Apache开源社区的一个子项目。随着Lucene被人们熟知,越来越多的用户和研发人...
2019-01-19 22:34:25
566
原创 JVM垃圾收集器-G1收集器
G1收集器是当前收集器技术发展的最前沿成果,在JDK1.6_Updata14中提供了Early Access版本的G1收集器以供适用。G1收集器是垃圾收集器理论进一步发展的产物,它与前面的CMS收集器相比有两个显著的改进:一是G收集器是基于“标记-整理”算法实现的收集器,也就是说它不会产生碎片,这对于长时间运行的应用系统来说比较重要。二是它可以非常精确地控制停顿,既能让使用者明确指定爱一...
2019-01-18 08:29:44
198
原创 JVM垃圾收集器-CMS收集器
CMS收集器 CMS收集器是一种以获取最短回收停顿时间为目标的收集器,目前很大一部分的Java应用都集中在互联网或B/S系统都服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。CMS收集器就非常符合这类应用的需求。 它是基于“标记-清除“算法实现的,它的运作过程相对于前几种收集器较复杂点,整个过程分为4步,包括:初始标记,并发标记...
2019-01-16 21:56:57
196
原创 JVM垃圾收集器-Serial Old收集器,Parallel Old收集器
Serial Old收集器 Serial Old收集器是Serial收集器的老年代版本,它是一个单线程收集器,使用“标记-整理”算法。这个收集器的主要意义也是被Client模式下的虚拟机使用。在server模式下,它主要还有两大用途:一个是在JDK1.5及之前的版本中与Parallel Scavenge收集器搭配使用,另外一个就是作为CMS收集器的后备元,在并发收集发生 Concur...
2019-01-15 08:14:02
494
原创 JVM垃圾收集器-Parallel Scavenge收集器
今天我给大家讲讲JVM垃圾收集器-Parallel Scavenge收集器Parallel Scavenge收集器 Parallel Scavenge收集器也是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器,看上去和ParNew都一样,那它有什么特别之处呢? Parallel Scavenge收集器的特点是它的关注点与其他收集器不同,CMS等...
2019-01-14 08:44:14
1515
原创 JVM垃圾收集器-ParNew收集器
今天我给大家讲讲ParNew收集器。ParNew收集器 ParNew收集器收集器其实就是Serial收集器的多线程版本,除了使用多线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数、收集算法、Stop The world、对象分配规则、回收策略等都与Serial收集器完全一样,实现上这两种收集器也共用了相当多的代码。ParNew收集器的工作过程如下图所示。...
2019-01-13 11:17:17
436
原创 JVM垃圾收集器-Serial收集器
今天我给大家分享的是Serial收集器,垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同的版本的虚拟机所提供的垃圾收集器都可能会有很大的差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器,这里讨论的收集器基于Sun HotSpot虚拟机1.6版Update22,这个虚拟机包含的所有的收...
2019-01-12 08:45:52
524
原创 UCloud数据盘扩容步骤
1. 扩容目的 由于服务器数据盘存储空间不足导致系统无法正常的。为了彻底解决此问题,我们需要对服务器数据盘进行扩容。2. 扩容步骤2.1. 关机(如下图) 2.2. 创建快照(如下图) 2.3. 扩容(如下图)2.3.1.扩容 2.3.2.停止docker,mysql 点击"登陆"按...
2019-01-11 08:36:15
952
原创 《从Lucene到Elasticsearch:全文检索实战》学习笔记五
今天我给大家讲讲tf-idf权重计算tf-idf权重计算: tf-idf(中文词频-逆文档概率)是表示计算词项对于一个文档集或语料库中的一份文件的重要程度。词项的重要性随着它在文档中出现的次数成正比,会随着它在文档集中出现的频率成反比。如果一个词项在一遍文档中出现的频率非常高,说明其比较重要,如果这个词项在其他文档中出现的频率也高,那么说明这个词有可能是比较通用的。 ...
2019-01-10 08:26:14
657
原创 《从Lucene到Elasticsearch:全文检索实战》学习笔记四
今天我给大家讲讲布尔检索模型基本概念布尔检索模型: 检索模型是判断文档内容与用户相关性的核心技术,以大规模网页搜索为例,在海量网页中与用户查询关键词相关的网页可能会有成千上万个,甚至耕读哦。那么信息检索系统是如何判断网页和查询关键词是相关的?内部的排序模型是怎样的? 布尔检索模型中主要有AND、OR、NOT三种逻辑运算,布尔逻辑运算符的作用是把检索词连接起来,构成...
2019-01-09 08:23:00
327
原创 JVM垃圾回收算法解析
JVM垃圾回收算法解析标记-清除算法 该算法为最基础的算法。它分为标记和清除两个阶段,首先标记出需要回收的对象,在标记结束后,统一回收。该算法存在两个问题:一是效率问题,标记和清除过程效率都不太高,二是空间问题,在执行一次清除操作后,会存在好多不连续的内存碎片,从而造成资源的浪费。空间碎片太多将会导致,当在程序运行过程中,需要分配较大对象的时候无法找到足够的连续内存将会导致下一次垃...
2019-01-08 08:13:00
172
原创 《从Lucene到Elasticsearch:全文检索实战》学习笔记三
今天我给大家讲讲倒排索引。 索引是构成搜索引擎的核心技术之一,它在日常生活中是非常常见的,比如我看一本书的时候,我首先会看书的目录,通过目录可以快速定位到具体章节的页码,加快对内容的查询速度。 文档通常保存在各种数据库管理系统之中,比如mysql,oracle等,但是搜索引擎的数据不能保存在数据库,主要原因有两点:一是搜索引擎的数据量非常庞大,大型搜索引擎需...
2019-01-07 08:47:02
804
8
原创 《从Lucene到Elasticsearch:全文检索实战》学习笔记二
今天我给大家讲讲分词算法 分词算法概述:词是语义的最小单位。分词对搜索引擎的作用很大,可以促进搜索引擎程序自动识别语句的含义,可以提高搜索结果的匹配度,分析的质量也将直接影响了搜索结果的精确度。分词存在于文本索引的建立过程和用户提交检索过程。利用相同的分词器把短语或句子划分成相同的结果,才能保证检索过程顺利进行。中文和英文的分词简介如下: 1.英文分词的原理...
2019-01-06 15:08:28
702
2
原创 软件系统部署手册模版
软件系统部署手册模版目 录1. 前言.... 41.1. 目的.... 41.2. 术语与缩略语.... 42. 部署环境.... 42.1. 系统部署图.... 42.2. 软...
2019-01-04 23:16:14
33488
1
原创 微信公众平台二次开发技术文档
微信公众平台二次开发技术文档 总则 目的 本文档基于腾讯公司微信二次开发的相关规范,对微信二次开发的流程、步骤做了相关的说明,方便程序设计和开发人员快速掌握微信公众平台开发技术,便于提高代码的编写效率以及减少出现错误概率。 使用范围 本文档适合:系统设计人员、程序开发人员。 微信公众平台开发流程 申请微信订阅号、服务号、企业号 接入指...
2019-01-04 23:06:25
4210
div+js分页效果
2013-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人