自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The Best Or Nothing~

要坚持做一件事是需要毅力的!

  • 博客(71)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Git使用教程(四)

一:Git是什么?       Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别?      SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够

2016-05-15 12:01:11 6549

转载 基于 Redis 的分布式锁

2018-12-11 14:54:02 245

转载 漫画:如何用Zookeeper实现分布式锁?

漫画:什么是分布式锁?那么,如何用Zookeeper来实现分布式锁呢?这一次我们会为大家详细讲述。  什么是临时顺序节点?让我们来回顾一下Zookeeper节点的概念:  Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。Znode分为四种类型:1.持久节点 (PERSISTENT)默认的节点类型。创建节...

2018-12-11 14:28:29 419

转载 浅谈分布式事务

个人分类: 分布式

2018-11-23 11:26:38 225

转载 漫画:什么是微服务?

  单体架构的痛点    缺点一:项目过于臃肿当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护。 缺点二:资源无法隔离就像刚刚小灰的经历一样,整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。 缺点三:...

2018-11-21 10:22:10 235

转载 分布式事务解决方案

Spring Cloud 分布式事务管理在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率.在说微服务的优缺点时,有对比才会更加明显,首先说一下单体式结构 单体式架构在单体式架构中,系统通常采用分层架构模式(MVC),持久化层、表示层,业务逻辑层。架构主要存在以下问题:系统内部互相访问,耦合...

2018-11-21 10:00:02 135

原创 Spring AOP 实现原理

什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定

2016-06-21 23:39:35 1408

转载 Redis 复制

摘要早期的 RDBMS 被设计为运行在单个CPU之上,读写操作都由经单个数据库实例完成,复制技术使得数据库的读写操作可以分散在运行于不同CPU之上的独立服务器上.Redis作为一个开源的、优秀的key-value缓存及持久化存储解决方案,也提供了复制功能,本文主要介绍Redis的复制原理及特性。Redis复制概论数据库复制指的是发生在不同数据库实例之间,单向的信息传播的行为

2016-05-30 20:25:28 2016

原创 Spring定时任务之Quartz

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写一个被调度的类:package com.taozi.quartz; public class QuartzJob{ public void execute() { System.out.println("Qu

2016-05-25 19:56:03 2353

原创 Dubbo大致介绍

从http://dubbo.io/网站下载下来dubbo解压了就是这样子的:各层说明:config,配置层,对外配置接口,以ServiceConfig, ReferenceConfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类proxy,服务代理层,服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心

2016-05-24 20:27:16 3107

原创 事务四大特征:原子性,一致性,隔离性和持久性(ACID)

Transaction 也就是所谓的事务了,通俗理解就是一件事情。从小,父母就教育我们,做事情要有始有终,不能半途而废。事务也是这样,不能做一般就不做了,要么做完,要么就不做。也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位。于是,人们就归纳出事务的第一个特性:原子性(Atomicity)。我靠,一点都不神秘嘛。特别是在数据库领域,事务是...

2016-05-23 21:30:28 8611 4

原创 SSO单点登录

SSO体系结构      1)认证中心      2)用户与账号系统、用户数据获取接口                     3)客户端模块                      4)令牌(token)  SSO认证流程  SSO相关核心技术  1、HTTP、cookie与

2016-05-23 21:15:05 2778

转载 JAVA设计模式(24):创建型-工厂模式【工厂方法模式】(Factory Method)

简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生,本文将介绍第二种工厂模式——工厂方法模式。1 日志记录器的设计       Sunny软件公司欲开发一个系统运行日志

2016-05-19 22:31:02 5313

转载 JAVA设计模式(23):行为型-访问者模式(Visitor)

想必大家都去过医院,虽然没有人喜欢去医院(爱岗敬业的医务工作人员除外,)。在医生开具处方单(药单)后,很多医院都存在如下处理流程:划价人员拿到处方单之后根据药品名称和数量计算总价,药房工作人员根据药品名称和数量准备药品,如图1所示:      在图1中,我们可以将处方单看成一个药品信息的集合,里面包含了一种或多种不同类型的药品信息,不同类型的工作人员(如划价人员和药房工作人员)在操

2016-05-19 22:19:04 7576 1

转载 JAVA设计模式(22):行为型-解释器模式(Interpreter)

虽然目前计算机编程语言有好几百种,但有时候我们还是希望能用一些简单的语言来实现一些特定的操作,我们只要向计算机输入一个句子或文件,它就能够按照预先定义的文法规则来对句子或文件进行解释,从而实现相应的功能。例如提供一个简单的加法/减法解释器,只要输入一个加法/减法表达式,它就能够计算出表达式结果,如图1所示,当输入字符串表达式为“1 + 2 + 3 – 4 + 1”时,将输出计算结果为3。

2016-05-19 22:09:37 7365 3

转载 JAVA设计模式(21):行为型-迭代器模式(Iterator)

20世纪80年代,那时我家有一台“古老的”电视机,牌子我忘了,只记得是台黑白电视机,没有遥控器,每次开关机或者换台都需要通过电视机上面的那些按钮来完成,我印象最深的是那个用来换台的按钮,需要亲自用手去旋转(还要使点劲才能拧动),每转一下就“啪”的响一声,如果没有收到任何电视频道就会出现一片让人眼花的雪花点。当然,电视机上面那两根可以前后左右移动,并能够变长变短的天线也是当年电视机的标志性部件之一,

2016-05-19 22:00:18 5268

转载 JAVA设计模式(20):行为型-备忘录模式(Memento)

每个人都有过后悔的时候,但人生并无后悔药,有些错误一旦发生就无法再挽回,有些人一旦错过就不会再回来,有些话一旦说出口就不可能再收回,这就是人生。为了不后悔,凡事我们都需要三思而后行。说了这么多,大家可能已经晕了,不是在学设计模式吗?为什么弄出这么一堆人生感悟来,呵呵,别着急,本章将介绍一种让我们可以在软件中实现后悔机制的设计模式——备忘录模式,它是软件中的“后悔药”,是软件中的“月光宝盒”。话不多

2016-05-19 21:54:17 4771

转载 JAVA设计模式(19):行为型-观察者模式(Observer)

观察者模式是设计模式中的“超级模式”,其应用随处可见,在之后几篇文章里,我将向大家详细介绍观察者模式。       “红灯停,绿灯行”,在日常生活中,交通信号灯装点着我们的城市,指挥着日益拥挤的城市交通。当红灯亮起,来往的汽车将停止;而绿灯亮起,汽车可以继续前行。在这个过程中,交通信号灯是汽车(更准确地说应该是汽车驾驶员)的观察目标,而汽车是观察者。随着交通信号灯的变化,汽车的行为

2016-05-19 20:53:52 6157

转载 JAVA设计模式(18):行为型-状态模式(State)

“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰,也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。我们可以用UML状态图来描述H2O的三种状态,如图1所示:图1 H2O的三种状态(未考虑临界点)       在软件系统中,有些对象也像水一样具有

2016-05-19 20:26:43 10366 4

转载 JAVA设计模式(17):行为型-模板方法模式(Template Method)

1. 模板方法模式概述       在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同,如图1所示:图1 请客吃饭示意图        在软件开发中

2016-05-19 20:09:47 6525

转载 JAVA设计模式(16):行为型-策略模式(Strategy)

俗话说:条条大路通罗马。在很多情况下,实现某个目标的途径不止一条,例如我们在外出旅游时可以选择多种不同的出行方式,如骑自行车、坐汽车、坐火车或者坐飞机,可根据实际情况(目的地、旅游预算、旅游时间等)来选择一种最适合的出行方式。在制订旅行计划时,如果目的地较远、时间不多,但不差钱,可以选择坐飞机去旅游;如果目的地虽远、但假期长、且需控制旅游成本时可以选择坐火车或汽车;如果从健康和环保的角度考虑,而且

2016-05-19 13:05:31 8115

转载 JAVA设计模式(15):行为型-命令模式(Command)

装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立连接,如果开关打开,则电线通电,电器工作;反之,开关关闭,电线断电,电器停止工作。相同的开关可以通过不

2016-05-19 12:58:10 10706 1

转载 JAVA设计模式(14):行为型-中介者模式(Mediator)

腾讯公司推出的QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多人学习、工作和生活的一部分(不要告诉我你没有QQ哦,)。在QQ聊天中,一般有两种聊天方式:第一种是用户与用户直接聊天,第二种是通过QQ群聊天,如图1所示。如果我们使用图1(A)所示方式,一个用户如果要与别的用户聊天或发送文件,通常需要加其他用户为好友,用户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂,

2016-05-19 12:51:29 6252

转载 JAVA设计模式(13):行为型-责任链模式(Responsibility)

“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理这种请求

2016-05-19 09:26:46 5899

转载 JAVA设计模式(12):结构型-门面模式(Facade)

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。1. 外观模式概述      不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员

2016-05-18 22:55:58 5084

转载 JAVA设计模式(11):结构型-装饰模式(Decorator)

尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软件设计中,我们也有一种类似新房装修的技术可以对已有对象(新房)的功能进行扩展(装修),以获得更加符合用户需求的对象,使得对象具有更加强大的功能。这种技术对应于一

2016-05-18 22:46:32 5193

原创 jsp中EL表达式

EL 全名为Expression LanguageEL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构:${sessionScope.user.sex}所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得用户的性别。假若依照之前JSP Scriptlet的写法如下:User user = (Us

2016-05-18 20:37:57 4682

原创 Spring关键词的理解

IOC通俗的理解如下IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理。DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。

2016-05-18 13:33:45 4573

原创 Struts1、Struts2、Hibernate、Spring框架工作原理介绍

Struts1工作原理Struts1工作原理图1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想) 2、发送请求:用户提交表单或通过URL向WEB服务器提

2016-05-18 13:31:14 5008

原创 Java基础 - 强引用、弱引用、软引用、虚引用

1、强引用(StrongReference)         强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:[java] view plaincopyprint?Object o = new Object();   //  强引用        当内存空间不足,Java虚拟机宁愿抛出Ou

2016-05-17 22:10:05 4827

原创 利用 pinyin4j 把汉字转化为拼音

1.     简单介绍有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”,即“曹孟德”三个汉字的拼音“caomengde”各字的首字母。但是怎样才能将“曹孟德”翻译成“caomengde”呢?很简单的办法就是建立一个大的对照表(比如用关联容器Map),比如,,…但

2016-05-17 21:57:48 5864

原创 Apache POI 操作Excel

认识POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。结构:HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF - 提供读写Micro

2016-05-17 21:43:18 5367

原创 Vector和ArrayList的区别

Vector和ArrayList区别 在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。 Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 当Vector或ArrayLis

2016-05-17 21:37:28 4843

原创 XML解析的两种方式DOM和SAX

DOM和SAXW3C制定了一套书写XML分析器的标准接口规范--DOM。除此之外,XML_DEV邮件列表中的成员根据应用的需求也自发地定义了一套对XML文档进行操作的接口规范--SAX。这两种接口规范各有侧重,互有长短,应用都比较广泛。 下面,我们给出DOM和SAX在应用程序开发过程中所处地位的示意图。从图中可以看出,应用程序不是直接对XML文档进行操作的,而是首先

2016-05-17 21:31:53 5925

原创 JVM虚拟机和类加载器

类加载器深入剖析Java虚拟机与程序的生命周期1) 执行了System.exit()方法2) 程序正常执行结束3) 程序在执行过程中遇到了异常或错误而异常终止4) 由于操作系统出现错误而导致java虚拟机进程终止类的加载、连接与初始化加载:查找并加载类的二进制数据连接           1) 验证:确保被加载的类的正确性

2016-05-17 21:23:35 4845

原创 Java中的递归原理分析

什么叫做递归        程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限

2016-05-17 21:15:29 5339

原创 Java集合框架List,Map,Set等

Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构。 Java集合框架的基本接口/类层次结构:java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedL

2016-05-17 21:04:43 5045

原创 JAVA枚举使用详解

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。package com.map.enums;import java.util

2016-05-17 20:43:09 5108

原创 JAVA遍历二叉树

二叉树的概念   二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。现在我们给出一组二叉树二叉树遍历又分为先序遍历(根节点-左子树 -右子树 )、中序遍历(左子树 -根节点-

2016-05-17 20:38:34 5132

转载 JAVA设计模式(10):结构型-组合模式(Composite)

树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树形结构或者树形结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点)。下面将学习这种用于处理树形结构的组合模式。 

2016-05-17 16:41:29 5530

WCF版三星ERP系统(附加数据库)

由于系统写了好久,保证质量,所以分是10分~~

2013-09-04

JDK_API中文版

JDK中文版,希望大家能够喜欢。我也是刚刚才拿到的~~

2013-03-24

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

TA关注的人

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