自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雷小涛的专栏

只要思想不滑坡,办法总比困难多

  • 博客(80)
  • 资源 (3)
  • 问答 (3)
  • 收藏
  • 关注

原创 laydate时间插件点击跟换日期过后bootstrapValidator表单二次验证失败的问题

项目中的表单验证插件使用的是 bootstrapValidator日期选择插件使用的是laydate在点击submit进行laydate非空验证后(如图1),更换日期(如图2),不会再次触发bootstrapValidator验证图1图2问题的根本就是:bootstrapValidator不会校验已经校验过的表单(网上的思路,我没有研究,本着解决问题的初衷)解决办法:初始化laydate的时候,在laydate的done回调方法中单独在对时间字段进行验证:layd.

2020-07-05 02:09:06 746 2

原创 Spring Cloud学习(二):Spring Cloud Eureka

1 Eureka简介Eureka是Spring Cloud体系中用于服务注册与发现的组件。主要解决子项目之间的通讯问题。1.1 主要角色 Eureka体系调用关系图注册中心(Eureka Server):主要用于服务注册和发现的注册中心。失效剔除:...

2019-05-11 16:43:23 446

原创 Spring Cloud学习(一):Spring Cloud Zuul

1 zuul简介在微服务架构下,后端服务的信息一般是动态变化的,客户端很难及时获取动态变化的服务地址信息,因此在微服务架构中为了简化服务调用逻辑,通常会引用API Gateway作为轻量级网关,同时API Gateway中也会实现相关的认证逻辑从而简化内部服务之间调用的复杂度。服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、...

2019-02-24 14:49:59 372

原创 Tomcat处理HTTP请求过程分析

Tomcat处理HTTP请求过程分析一、Tomcat是什么?Tomcat是一个web应用服务器,是一个Servlet/Jsp容器,主要负责将客户端请求传递给对应的Servlet,并且将Servlet的响应数据返回给客户端。Tomcat是基于组件的服务器。二、Tomcat体系结构Tomcat是一个基于组件的服务器,它的构成组件都是可配置的。其各个组件都在Tomcat安装目录下的....

2018-12-14 14:43:02 6721 1

原创 什么是RESETful API架构

一、什么是RESTful API架构?REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。阮一峰博主将其翻译为"表现层状态转化"。如果一个架构符合REST原则,就称它为RESTful架构。只要理解了Representational State ...

2018-11-01 15:39:50 2489 1

原创 Spring接收处理HTTP请求流程浅析

spring web Http request 请求流程服务器容器监听端口,接收到请求后调用Servlet的service方法。以Tomcat为例,Tomcat监听8080端口(8080为默认配置端口,也可以自行更改),当有请求到达8080端口时,容器将调用Servlet的service方法。javax.servlet.Servlet中定义了所有Servlet必须要实现的方法。在spring w...

2018-10-30 15:44:29 6356

转载 js如何判断一个对象{}是否为空对象,没有任何属性

JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyObject()方法。function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } 调用:console.log($.isEmptyObject({"...

2018-09-11 17:04:51 557

转载 高性能JSON框架之FastJson的简单使用

高性能JSON框架之FastJson的简单使用1.前言1.1.FastJson的介绍:JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson1.2.FastJson的特点:1.FastJson数度快,无论序列化和反序列化,都是当之无愧...

2018-09-10 17:00:51 385

转载 Js将HTML Table中的内容导出到Excel

1、代码 //从table中导出excel表function exec(){ exportExcel('tableId','名称','导出表的名称.xls'); }//判断浏览器var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; ...

2018-09-10 15:53:04 728

翻译 对象深克隆工具类DeepCopy

/** * Deep copy of an Object. The Object must be Serializable */public class DeepCopy { /** * Returns a copy of the object, or null if the object cannot * be serialized. * @para...

2018-08-17 16:15:56 2218

转载 java读取文件方法大全

1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。     */    public static void readFileByBytes(String fileName) {        File file ...

2018-06-26 16:36:06 223 1

转载 ZooKeeper学习(八):ZooKeeper伸缩性

ZooKeeper学习第八期——ZooKeeper伸缩性一、ZooKeeper中Observer1.1 ZooKeeper角色经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower。Leader可以接受client请求,也接收其他Server转发的写请求,负责更新系统状态。 Follower也可以接收client请求,如果是写请求将转发给Leade...

2018-05-10 12:26:13 251

转载 ZooKeeper学习(七):ZooKeeper一致性原理

一、ZooKeeper 的实现1.1 ZooKeeper处理单点故障我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示。图 1.1 ZooKeeper解决单点故障那么我们继续分析一下,ZooKeeper通过Master选举来帮助分布式系统解决单点故障,保证该系统中每时每刻只有一个Master为分布式系统提供服务。也就是说分布式的单点问题交给了Z...

2018-05-10 12:24:33 551

转载 ZooKeeper学习(六):ZooKeeper机制架构

ZooKeeper学习第六期---ZooKeeper机制架构一、ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制。ACL的实现和Unix文件访问许可非常相似:它使用许可位来对一个节点的不同操作进行允许或禁止的权限控制。但是和标准的Unix许可不同的是,Zooke...

2018-05-10 11:43:03 261

转载 ZooKeeper学习(五):ZooKeeper管理分布式环境中的数据

ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据引言本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法、Zab协议、通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们理解。由于内容比较多,一口气吃不成胖子,得慢慢来一步一个脚印,因此我对后期ZooKeeper的学习规划如下:第一阶段:|---理解...

2018-05-10 11:41:41 301

转载 ZooKeeper学习(四):构建ZooKeeper应用

ZooKeeper学习第四期---构建ZooKeeper应用一、配置服务配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公共的部分。简单地说,ZooKeeper可以作为一个具有高可用性的配置存储器,允许分布式应用的参与者检索和更新配置文件。使用ZooKeeper中的观察机制,可以建立一个活跃的配置服务,使那些感兴趣的客户端能够获得配置信息修改的通知。下面来编写一个这...

2018-05-10 11:38:32 275

转载 ZooKeeper学习(三):Zookeeper命令操作

ZooKeeper学习第三期---Zookeeper命令操作一、Zookeeper的四字命令Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令。Zookeeper常用的四字命令见下图所示。上图,是Zookeeper四字命令的一个简单用例。[root...

2018-05-10 11:35:16 319

转载 ZooKeeper学习(二):ZooKeeper安装配置

ZooKeeper学习第二期--ZooKeeper安装配置一、Zookeeper的搭建方式Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ens...

2018-05-10 11:31:21 285

转载 ZooKeeper学习(一):Zookeeper简单介绍

ZooKeeper学习第一期---Zookeeper简单介绍一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调度算法就轻松解决了。说这句话的人,可能对...

2018-05-10 11:28:57 351

转载 MySql存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理...

2018-05-08 16:21:49 155

原创 SpringBoot接收前端日期不准确问题

最近遇到一个问题,数据库字段为datetime,前端form表单直接展示过后保存入库,结果日期自己变化了,要么日期增加了一天,要么小时增加了两小时。通过request.getParamater("createDate")获取到的参数和springBoot自己封装的createDate(java Date类型)后的参数不相等。request.getParamater("createDate"

2018-04-26 11:28:30 2785

原创 Kafka基本原理和java简单使用

Apache Kafka学习(一):Kafka基本原理1、什么是Kafka?Kafka是一个使用Scala编写的消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。Kafka是一种分布式的,基于发布/订阅的消息系统。Kafka使用zooke...

2018-04-20 15:39:57 695 1

原创 java克隆(clone)的两种实现方法

1概念由java API文档可知:clone 属于 java.long.Object的一个方法protected Object clone() throws CloneNotSupportedException创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。这样做的目的是,对于任何对象 x,表达式:x.clone() != x为 true,表达式:x.clone().getCla...

2018-04-18 11:35:17 9133

原创 Spring websocket+Stomp+SockJS 实现实时通信 详解

Spring websocket+Stomp+SockJS 实时通信详解一、三者之间的关系        Http连接为一次请求(request)一次响应(response),必须为同步调用方式。WebSocket 协议提供了通过一个套接字实现全双工通信的功能。一次连接以后,会建立tcp连接,后续客户端与服务器交互为全双工方式的交互方式,客户端可以发送消息到服务端,服务端也可将消息发送给客户端。 ...

2018-04-17 23:08:50 15811 9

转载 AtomicInteger类的理解与使用

AtomicInteger类的理解与使用首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; }}...

2018-04-04 11:00:30 212

原创 java参数传递:值传递

1  简述栈、堆和方法区的用法通常我们定义一个基本数据类型的变量(非成员变量,成员变量放在堆中)、一个对象的引用、还有就是函数调用的现场保存都使用JVM中的栈(stack)空间。通过new关键字和构造器创建的对象则放在堆(heap)空间,没有被引用的对象就成为“垃圾”,因此堆是垃圾收集器(GC)管理的主要区域。由于现在的垃圾收集器都采用分代收集算法,所以堆空间还可以细分为新生代和老

2018-03-29 20:24:10 496 1

原创 Spring事务管理

1  事务的ACID四大特性原子性(Atomicity):事务是一个原子操作,由一系列的动作组成。原子性确保动作要么都做,要么都不做。一致性(Consistency):一致性确保系统从一个一致状态转换为另一个一致状态。不管操作成功或失败,数据都不应该被破坏。隔离性(Isolation):事务与事务之间相互隔离,互不干扰。持久性(Durability):事务提交后,对系统的影响是持久不变的。无论系统...

2018-03-28 20:50:10 254

原创 RabbitMQ学习(三):Spring整合RabbitMQ

1、maven依赖 org.springframework.amqp spring-rabbit 1.4.6.RELEASE2、spring-rabbit配置2.1、配置rabbitMQ连接(1)采用方式配置连接<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.h

2018-01-02 16:28:50 6185 2

原创 RabbitMQ学习(二):Java使用RabbitMQ要点知识

1、maven依赖 commons-lang commons-lang 2.3 com.rabbitmq amqp-client 3.4.1 2、RabbitMQ重要方法介绍(基本常用的)2.1、创建连接// 创建连接工厂ConnectionFactory cf = ne

2017-12-28 18:12:27 2792

原创 RabbitMQ学习(一):RabbitMQ要点简介

1、什么是RabbitMQ?RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。支持Windows、Linux/Unix、MAC OS X操作系统和包括JAVA在内的多种编程语言。AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,

2017-12-27 10:51:56 5201 2

转载 RabbitMQ学习之Headers交换类型(java)

Headers类型的exchange使用的比较少,它也是忽略routingKey的一种路由方式。是使用Headers来匹配的。Headers是一个键值对,可以定义成Hashtable。发送者在发送的时候定义一些键值对,接收者也可以再绑定时候传入一些键值对,两者匹配的话,则对应的队列就可以收到消息。匹配有两种方式all和any。这两种方式是在接收端必须要用键值"x-mactch"来定义。all代表定

2017-12-26 18:24:46 680

原创 JAVA设计模式总目录

JAVA设计模式 一、创建型 单例模式(Singleton Pattern)生成器模式(Builder Pattern):又叫建造者模式原型模式(Prototype Pattern)工厂模式(Factory Pattern):包括:静态工厂;工厂方法;抽象工厂。 二、行为型 中介者模式(Mediator Pattern):又叫调停者模式。访问者模式(

2017-12-14 14:53:00 337

转载 JAVA设计模式之访问者模式

1. 什么是访问者模式?访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问者两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访

2017-12-14 11:19:51 242

原创 JAVA设计模式之原型模式

1. 什么是原形模式?原型模式(Prototype Pattern)用原形对象指定创建对象的种类,并且通过-拷贝这些原形来创建新的对象。原形模式用于创建重复的对象,同时又能保证性能。原型模式属于创建型模式。原形模式要求原形对象实现一个“克隆”自身的方法,通过调用这个方法来创建一个新的实例对象。说到“克隆”就不得不提深克隆和浅克隆,请参考另一片文章《java克

2017-12-13 15:04:36 286

原创 JAVA设计模式之备忘录模式

1. 什么是备忘录模式?备忘录模式(Memento Pattern):不破坏封装的前提下,捕捉一个对象的内部状态,并在这个对象之外存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式又叫标记模式和快照模式,是对象的行为型模式。备忘录对象是用来储存在某个时刻一个对象内部状态的对象。采用备忘录模式,我们可以使用一个备忘录对象来储存某个时刻

2017-12-12 16:40:22 445 2

原创 JAVA设计模式之中介者模式

1. 什么是中介者模式?中介者模式(Mediator Pattern)是用一个中介对象(中介者)来封装一系列对象之间的交互,中介者使各对象之间不用显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。中介者模式又称为调停者模式,是一种对象行为型模式。如果系统之中出现大量对象之间相互引用,将会造成(1)系统结构变得复杂。对象与对象之间存在大量相互引用,若一个对象改变

2017-12-08 15:50:31 315

转载 JAVA设计模式之解释器模式

1. 什么是解释器模式?    定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。注:此模式使用较少,本人也为使用过,想要掌握此模式需要一些形式语法的知识。2. 角色 图片来源于网络抽象解释器(Expression):声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要有一个称做解

2017-12-07 11:33:15 317

原创 JAVA设计模式之责任链模式

1. 什么是责任链模式?创建多个对象,使这些对象行成一条链,并沿着这条链传递请求,直到链上的某个对象决定处理此请求,这就是责任链模式。接收请求的对象形成一条链,这些对象在链上具有层级关系的。这些对象可以处理请求,也可以传递请求,直到有对象处理此请求为止。责任链模式归根结底就是多重判断,和if、else if是相同的功能,但是条件比较多的情况下,使用if/else会造成代

2017-12-05 11:36:36 376

原创 JAVA设计模式之生成器模式

1. 什么是生成器模式?《Head First设计模式》中定义:封装一个产品的构造过程,并允许按步骤构造。生成器模式(Builder Pattern)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式是对象创建型模式,又叫建造者模式。生成器模式针对的是复杂对象的创建。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构

2017-12-04 10:32:22 482

原创 JAVA设计模式之桥接模式

1. 什么是桥接模式?桥接模式(Bridge Pattern):将抽象部分与他的实现部分分离,使他们都可以独自变化。桥接模式是一种对象结构型模式。对于有两个或多个变化维度(即多个变化的原因)时,将每个维度分离开并采用相互组合的方式可以减少类与类之间的耦合,同时有利于扩展,这种方式就是桥接模式。对于定义中的抽象与实现分离开可以理解为将维度与维度分离开,使之单独变化,互不影响。

2017-11-30 17:27:39 362

Spring websocket+Stomp+SockJS 实现实时通信 详解

Http连接为一次请求(request)一次响应(response),必须为同步调用方式。WebSocket 协议提供了通过一个套接字实现全双工通信的功能。一次连接以后,会建立tcp连接,后续客户端与服务器交互为全双工方式的交互方式,客户端可以发送消息到服务端,服务端也可将消息发送给客户端。 SockJS 是 WebSocket 技术的一种模拟。为了应对许多浏览器不支持WebSocket协议的问题,设计了备选SockJs。开启并使用SockJS后,它会优先选用Websocket协议作为传输协议,如果浏览器不支持Websocket协议,则会在其他方案中,选择一个较好的协议进行通讯。........

2018-04-18

Java使用RabbitMQ完整项目源码.rar

此项目是java使用RabbitMQ的demo源码,其中详细的展示了java如何使用rabbitMQ。包括连接RabbitMQ服务器,发送消息,处理消息,发送监听,返回监听等。

2017-12-28

Spring整合RabbitMQ完整项目源码.rar

此源码是在前人Demo的基础上自己改造的,主要讲了spring和rabbitMQ的整合与使用。其中包含两个项目,一个Producer,一个Consumer,能够分别运行。Producer生产并发送消息到RabbitMQ,Consumer从RabbitMQ接收并处理消息。简单易懂。

2017-12-28

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

TA关注的人

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