自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 Erlang中的分布式编程

Erlang分布式是语言內建的,从用户角度看,它是完全透明的。通过进程ID存取进程,不管是引用在本地计算机上的一个进程,还是在世界其他地方的系统上的一个进程,操作都一样。Erlang中的分布式系统1.分布式系统的实质是通过一些用网络连接起来的计算机、处理器或者内核以一种透明的方式提供某种服务。服务可以是特定的,比如分布式文件系统或数据库提供的存储功能;也可以是通用的,比如分布式操作系统通...

2017-03-10 17:17:10 960

原创 Erlang中如何实现分页效果

1.前台1.1.使用二维map来存储分页信息:1.1.1.一维map存储页码和分页信息,key为页码,value为分页信息。1.1.2.二维map存储分页的上一页,当前页,下一页信息。1.1.3.当为第一页时,map[1]["prePage"]="",map[1]["currPage"]="",map[1]["nextPage"]=取到第一页数据后的continuation信息;...

2017-03-09 15:13:40 203

原创 ets和Dets

需要实际的系统都需要在有限的时间存储和检索大量的数据。在程序中主要使用的是一个数据组合类型是一些项的聚合。Erlang的列表提供了实现聚合的一种方法,但是如果列表中的项超过一定数量,存取元素过程就会变慢。平均来说,我们需要校验聚合中50%的元素来确定一个给定元素的存在,而需要遍历所有的元素来确定一个给定值还存在。为处理快速检索,Erlang使用两种机制,一个是Erlang项元存储(Er...

2017-03-01 17:19:00 882

原创 更多数据类型和高级别构造

1.Erlang是一门函数式的编程语言,Erlang突出的特点是函数定义。一个真正的函数式的数据类型是funs。它们可以作为参数传递给其它函数,而且可以存储在像元组和记录类型的数据结构中或作为消息发送给其它进程。最重要的是,它们可以作为其它函数的结果,以至于函数可以作为数据传递,可以在程序中动态创建,而不仅仅指静态定义的函数,这可以让你写出简明、抽象、可再次使用的函数,而且它可以通过特定的行为...

2017-02-28 17:18:48 197

原创 记录和宏

记录1.记录是一个有着固定数目字段的数据结构,这些字段可以通过名称来访问。记录不同于元组,元组的字段可以通过位置信息来访问。可以定义一个记录类型如下:-record(person,{name,age,phone}).这就引入了记录类型person,每个记录实例包含如下三个名字的字段:name,age和phone。字段名称被定义为基元。下面是一个关于这种类型的记录实例:#perso...

2017-02-27 17:01:22 115

原创 进程错误处理机制

在处理系统的容错性和高可用性方面,Erlang有着它自己的独到之处,其根本原因是Erlang系统拥有构建于语言并发模型中的简单且功能强大的各种构造。这些构造允许进程相互监控并从软件故障中恢复。它们使Erlang相对于其它编程语言更具有竞争优势,因为通过隔离错误,确保不间断运行而提供的容错性,方便了复杂架构的开发。进程链接和退出信号1.内置函数link/1需要一个进程标识符作为参数,它会...

2017-02-24 11:39:32 391

原创 并发编程

Erlang的并发优势1.并发是指多个不同的函数能够并行运行而不互相影响。每个Erlang中的并发活动称为一个进程。进程之间相互交流的唯一途径是通过消息传递,数据以这种方式从一个进程发送到另一个进程。2.并发模型的设计哲学:世界是并发的。事物之间不共享数据。事物通过消息进行通信。事物会出现故障。3.并发模型及其错误处理机制从一开始就内置于Erlang中。使用轻量级进...

2017-02-20 17:24:22 100

原创 Erlang顺序编程

Erlang拥有条件评估计算形式,它们是可以互换的:1.通过函数的参数进行模式匹配来进行函数的选择执行。2.case结构。2.1.case结构依靠模式匹配来判断应该执行那些语句,它跟通过模式匹配来选择执行函数很类似。不同的是,case不是把函数的真实参数和形式参数进行模式匹配,而是通过一个表达式求值,然后对它的结果和一个由分号隔开的模式匹配列表进行匹配。2.2.一般情况下,ca...

2017-02-20 15:09:18 388

原创 Erlang基础

数据类型:1.整数1.1.正整数或者负整数,没有最大的正整数,例如-234,0,100001.2.Base#Value用于表示基数不为10的整数,Base是一个介于2-16的整数,Value就是基于Base的具体数值,例如2#1010,-16#EA。1.3.字符的ASCII码,采用$Character的表示方法,例如$a,$A,$\n.2.浮点数(代表实数)2.1.普通...

2017-02-15 16:10:31 256

原创 14_微信项目开发06_用户关注和取消关注事件

本章讲解内容主要如下:1.用户扫描公众号二维码进行关注时,微信服务器会发送subscribe请求给开发者服务器,开发者服务器会根据数据库中是否存在此openid的用户信息来进行操作,如果数据库中存在此openid的用户信息,则将用户信息的状态修改为可用的,如果数据库中不存在此openid的用户信息,则根据openid从微信服务器中获取用户信息,并将其存储到我们自己的数据库中,并将状态设置为可...

2017-02-10 15:01:42 395

原创 标签汇集

c标签:http://java.sun.com/jstl/core_rtsf标签:http://www.springframework.org/tags/form 

2017-02-10 12:58:17 108

原创 iterator迭代器和for循环

iterator迭代器:Iterator 支持从源集合中安全地删除对象,只需在 Iterator 上调用 remove() 即可。这样做的好处是可以避免 ConcurrentModifiedException,这个异常顾名思意:当打开 Iterator 迭代集合时,同时又在对集合进行修改。有些集合不允许在迭代时删除或添加元素,但是调用 Iterator 的 remove() 方法是个安全的...

2017-02-10 10:31:04 218

原创 java迭代器

迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.1.IteratorJava提供一个专门的迭代器«interface»Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器...

2017-02-10 10:11:31 102

原创 13_微信项目开发05_接受消息的排重方法的解决方案

本章讲解内容主要如下:1.用户发起请求到微信服务器,微信服务器会向开发者这里发送请求,如果微信服务器在五秒内收不到响应会断掉链接,并且重新发起请求,总共重试三次。2.开发者这里如果接收到请求,会从数据库中获取到回应信息并返回,如果五秒内没有返回,会再次接收到微信服务器发起的请求,这时需要进行排重操作。3.我们会在一个排重类中保存FromUserName和CreateTime(这两个字...

2017-02-10 09:36:45 293

原创 12_微信项目开发04_消息处理的流程设计

本章主要讲解内容如下:1.用户点击菜单的click事件或者输入文本信息,此信息推送给微信公众平台,微信公众平台将其分装成xml后提交给微信公众平台配置的开发者的url中的post方法。2.开发者项目通过微信公众平台配置的url的post方法接受消息,将此xml消息转换为map,并进行处理,处理完成后,将处理完成的map消息转换为xml,并推送给微信公众平台。3.微信公众平台将开发者返...

2017-02-09 16:30:34 89

原创 11_微信项目开发03_菜单的设计和实现02

本章主要讲解内容如下:1.通过在application.xml配置文件中配置job,使在项目初始化时获取一次token,并每隔一段时间来触发一次更新token信息。2.在后台完成菜单的创建与更新,并在菜单处理完成后,完成菜单的发布,将菜单信息推送到微信公众号上。3.通过扫描微信公众测试平台,来查看最新发布的菜单信息。...

2017-02-09 14:48:05 80

原创 spring开发中插入数据能够返回id但是数据库中没有插入的数据

在spring项目中,如果我们可以看到执行了插入语句,并且可以返回插入之后的id,但是却不能在数据库中看到插入的数据,这个时候要检查一下我们的service层,看一下service层中是否添加了@Transactional....

2017-02-08 16:34:48 789

原创 10_微信项目开发02_菜单的设计和实现01

此章节主要是关于菜单的设计:1.关于自己数据库的菜单等信息存放在basic文件夹下,关于微信的菜单等交互信息放在weixin文件夹下2.将菜单的信息存储到数据库中,可以在后台进行管理,并在设计完毕后将菜单信息推送给微信服务器...

2017-02-03 16:19:02 113

原创 09_微信项目开发01_介绍和基础配置

从此章节开始正式来完成一个项目,此章节的主要作用:1.将appId,appsecret,token等信息添加到properties中,并在项目启动时加载此信息2.完成项目的验证3.实现了真正项目结构的规整 ...

2017-02-03 15:01:33 85

原创 08_用户管理之用户组管理

1.创建分组1.1.接口说明一个公众账号,最多支持创建100个分组。1.2.调用接口(post方法)https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN1.3.调用实例{"group":{"name":"test"}}1.4.参数说明access_token: 调用接口...

2017-01-23 14:38:15 135

原创 07_模板消息的研发

1.客服消息当用户和公众号产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。目前允许的动作列表如下(公众平台会根据运营情况更新该列表,不同动作触发后,允许的客服接口...

2017-01-20 17:22:55 294

原创 06_微信的素材和图片消息处理

临时素材:公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。素材管理接口对所有认证的订阅号和服务号开放。请注意: 1、对于临时素材,每个素材(media_id)会在开发者上传或粉丝发送到微信服务器3天后自动删除(所以用户发送给开发者的素材,若开发者需要,应尽快下载到本地)...

2017-01-20 14:26:19 734

原创 05_微信的消息处理流程

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。1、关于重试的消息排重,推荐使用msgid排重。2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。消息分为普通消息类型和事件消息类型,现对其解析如下:1....

2017-01-18 14:32:03 307

原创 04_菜单的定义和微信的消息简介

菜单分为一级菜单和二级菜单,一级菜单最多有三个,二级菜单最多有五个,一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分使用...代替,在点击菜单时,调用controller层的和微信token校验相同的方法,只不过微信校验使用的是get方法,菜单调用的是post方法。目前比较常用的菜单类型有view和click,先对两种菜单解释如下:1.view类型菜单点击时打开url对应的...

2017-01-17 13:46:00 86

原创 03_定时获取公众平台的access_token

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token,access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。access_token的获取和保存步骤:1.项目初始化时需要刷新一次access_token2.使用定时器每隔7200秒刷新一次access_token,并保存到系统中...

2017-01-13 13:48:45 106

原创 02_开发者接口的服务器配置

微信的服务器开发配置的步骤:1.内网穿透因为微信服务器需要外网,所以我们需要使用花生壳来对内网进行穿透(孔浩老师使用的是花生壳+nat123,我们使用时因为花生壳具备了内网穿透的功能,并且nat123不稳定,所以我们可以直接使用花生壳),下载花生壳软件,点击内网穿透,在内网穿透中添加映射,设置外网访问地址为免费的域名,应用名称为我的项目名称,内网访问地址为127.0.0.1:端口号。...

2017-01-13 13:39:20 228

原创 spring 开发jar包

<dependency>     <groupId>org.springframework</groupId>     <artifactId>spring-context</artifactId>     <version>${spring.version}</version></depende

2017-01-12 14:10:53 103

原创 mysql jar包

<dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>5.1.25</version></dependency>

2017-01-12 14:04:05 229

原创 01_微信公众平台简介

所有的微信公众平台内容都是学习的唐浩老师的文章,所有的视频存在于我的百度网盘中,源码会在下面的附件中贴出,关于里面的一些细节问题,我会在文章中说明。...

2017-01-12 09:24:26 128

原创 微信开发 新浪SAE开发平台 验证Token 一直失败

本人刚刚学习微信开发,在微信平台中修改服务器设置时,使用微信Demo的PHP,刚开始一直验证token 失败 解决办法 :在echo $echoStr;之前添加header('content-type:text');一句这个就可以验证成功了; ...

2016-11-17 12:35:25 104

原创 SpringMVC中ACTION返回JSON数据中文乱码

@RequestMapping(value="/guider/login.json", produces = "text/html;charset=UTF-8")  // 方法体上加上注解即可 

2016-11-15 17:07:33 77

原创 Activiti进阶(五)——流程执行历史记录

之前的几篇文章,为大家简单的介绍了部署流程定义、启动流程实例、查看和办理个人任务以及如何设置和获取流程变量,这一系列的活动组成了一个完整的执行流程,那么一个执行完的流程我们如何查看相关的定义呢,这篇博文就为大家简单的介绍一下流程执行的历史记录查询。     一、查询历史流程实例  [java] view plain copy print?/**查询历史...

2016-11-11 13:42:23 135

原创 Activiti进阶(四)——流程变量的设置和获取

流程变量在整个工作流中扮演很重要的作用。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是只对应一个流程实例。也就是说各个流程实例的流程变量是不相互影响的。这篇博文就简单的为大家介绍下流程变量的设置和获取。      一、设置流程变量      流程变量的设置方式有两种,一是通过基本类型设置,第二种是通过JavaBean类型设置。  ...

2016-11-11 13:40:40 458

原创 Activiti进阶(三)——流程定义的CRUD

流程定义的RCUD,也就是对流程的增删该查,这篇博文简单的为大家介绍一下使用Activiti的api对流程定义进行增删改查操作。      一、查看流程定义  [java] view plain copy print?// 查询流程定义  @Test  public void findProcessDifinitionList() {    ...

2016-11-11 13:37:24 125

原创 Activiti进阶(二)——部署流程资源的三种方式

流程资源可以是各种类型的文件,在启动流程或流程实例运行过程中会被读取。下面介绍常用的流程资源。     一、流程资源          流程定义文件:扩展名为bpmn20.xml和bpmn;         流程定义的图片:用BPMN2.0规范的各种图形描绘,一般用PNG的格式;         表单文件:把表单内容保存在一个文件中,其扩展名为drl;       ...

2016-11-11 13:34:41 87

原创 Activiti进阶(一)——HelloWorld

任何知识的学习都是有简入繁,我们的Activiti也不例外,这篇博文将通过一个简单的HelloWorld来带大家认识一下我们的Activiti;     一、画流程图     在画流程图之前,要确保自己的Eclipse安装了Activiti的插件。                                                              ...

2016-11-11 13:28:16 104

原创 WebSessionManager接口

WebSessionManager接口里面只有一个方法,现对其解析如下:boolean isServletContainerSessions();//如果session的管理和存储被servlet container管理,则返回true,如果直接被shiro管理,则返回false。...

2016-11-10 17:16:45 166

原创 activiti数据库表删除顺序

drop table act_evt_log;drop table act_ge_property;drop table act_hi_actinst;drop table act_hi_attachment;drop table act_hi_comment;drop table act_hi_detail;drop table act_hi_identitylink;drop table ...

2016-11-10 17:16:32 1400

原创 EnterpriseCacheSessionDAO类

EnterpriseCacheSessionDAO类主要定义了,它继承了CachingSessionDAO抽象类,现对其解析如下:1.CachingSessionDAO抽象类可以参考CachingSessionDAO抽象类,主要定义了在缓存中保存session,更新session,删除session,读取session,获取所有的session集合等操作。2.EnterpriseC...

2016-11-10 17:13:57 5299

原创 DefaultWebSessionManager类

DefaultWebSessionManager类主要定义了session的创建,启动,暂停与cookie的关联的定义,它继承了DefaultWebSessionManager类,实现了WebSessionManager接口,现对其解析如下:1.WebSessionManager接口可以参考WebSessionManager接口源码解析,里面只有一个方法,定义了session是由ser...

2016-11-10 17:13:44 7795

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除