自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (23)
  • 收藏
  • 关注

转载 序列化和反序列化

#摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加

2017-01-14 16:35:37 712

转载 高可用性系统的实践与经验

所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用,并结合了一些自己的经验。需要强调的是,高可用性只是一个结果,应该更多地关注迭代过程,关注业务发展。可用性的理解理解目标业界高可用的目标是几个9,对于每一个系统,要求是不一样的。研发人员对所设计或者开发的

2017-01-14 16:28:39 730

转载 支付渠道网关系统的实践之路

业务的快速增长,要求系统在快速迭代的同时,保持很好的扩展性和可用性。其中,交易系统除了满足上述要求之外,还必须保持数据的强一致性。对系统开发人员而言,这既是机遇,也是挑战。本文主要梳理大众点评支付渠道网关系统在面对这些成长烦恼时的演进之路,以及过程中的一些思考和实践。在整个系统的演进过程中,核心思路是:大系统做小,做简单(具体描述可参考《高可用性系统在大众点评的实践与经验》)。在渠道网关系

2017-01-14 16:26:08 5887 2

转载 订单系统分库分表

背景原大众点评的订单单表早就已经突破两百G,由于查询维度较多,即使加了两个从库,优化索引,仍然存在很多查询不理想的情况。去年大量抢购活动的开展,使数据库达到瓶颈,应用只能通过限速、异步队列等对其进行保护;业务需求层出不穷,原有的订单模型很难满足业务需求,但是基于原订单表的DDL又非常吃力,无法达到业务要求。随着这些问题越来越突出,订单数据库的切分就愈发急迫了。这次切分,我们的目标是

2017-01-14 16:19:18 5081

转载 红黑树深入剖析及Java实现

红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为log

2017-01-14 16:16:28 323

转载 Quartz应用与集群原理分析

一、问题背景美团CRM系统中每天有大量的后台任务需要调度执行,如构建索引、统计报表、周期同步数据等等,要求任务调度系统具备高可用性、负载均衡特性,可以管理并监控任务的执行流程,以保证任务的正确执行。二、历史方案美团CRM系统的任务调度模块经历了以下历史方案。1. Crontab+SQL每天晚上运行定时任务,通过SQL脚本+crontab方式执行,例如,#

2017-01-14 16:11:25 645

转载 消息队列设计精要

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你

2017-01-14 12:37:06 1322

原创 深入理解事务--Spring注解式事务配置注意事项

1. 在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。2. @Transactional 注解只能应用到 public 可见度的方法上。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也

2015-05-18 00:06:56 7846 3

原创 深入理解事务--Spring事务的传播机制

事务的嵌套概念所谓事务的嵌套就是两个事务方法之间相互调用。spring事务开启 ,或者是基于接口的或者是基于类的代理被创建(注意一定要是代理,不能手动new 一个对象,并且此类(有无接口都行)一定要被代理——spring中的bean只要纳入了IOC管理都是被代理的)。所以在同一个类中一个方法调用另一个方法有事务的方法,事务是不会起作用的。###Spring默认情况下会对运行

2015-05-17 19:56:18 42626 16

原创 深入理解事务--事务ACID特性及隔离级别

简介     ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解.理解原子性(Atomicity)   原

2015-05-17 17:04:20 6921 3

原创 Lombok - 消除冗长的 java 代码

lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。lombok 的官方网址:http://projectlombok.org/  lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考。在这里我就不扯太多,先来看一下 lombok 的安装,其实这个

2014-12-14 22:07:13 667

原创 MyIbatis学习 (二)--利用Generator插件生成基于数据库方言的分页语句

众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题。网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页。但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉有点浪费性能。Mybatis Generator是Mybatis的代码生成工具,可以生成大

2014-11-05 20:20:42 1572

原创 MyIbatis学习 (一)--使用Generator自动生成代码

使用Generator自动生成代码

2014-11-05 20:01:40 2674

原创 Spring整合Jms学习(四)_事务管理

Spring提供了一个JmsTransactionManager用于对JMS ConnectionFactory做事务管理。这将允许JMS应用利用Spring的事务管理特性。JmsTransactionManager在执行本地资源事务管理时将从指定的ConnectionFactory绑定一个ConnectionFactory/Session这样的配对到线程中。JmsTemplate会自动检测这样的

2014-09-30 14:12:43 832 3

原创 Spring整合Jms学习(三)_MessageConverter介绍

1.4     消息转换器MessageConverterMessageConverter的作用主要有两方面,一方面它可以把我们的非标准化Message对象转换成我们的目标Message对象,这主要是用在发送消息的时候;另一方面它又可以把我们的Message对象转换成对应的目标对象,这主要是用在接收消息的时候。下面我们就拿发送一个对象消息来举例,假设我们有这样一个需求:我们平台有一个发送邮

2014-09-30 14:05:46 1125

原创 Spring整合Jms学习(二)_三种消息监听器

1.3     消息监听器MessageListener       在Spring整合JMS的应用中我们在定义消息监听器的时候一共可以定义三种类型的消息监听器,分别是MessageListener、SessionAwareMessageListener和MessageListenerAdapter。下面就分别来介绍一下这几种类型的区别。1.3.1  MessageListener

2014-09-29 23:25:36 1851

原创 Spring整合Jms学习(一)_基于ActiveMQ实现

一、Jms简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对

2014-09-29 21:54:04 912

原创 Ehcache学习(1)_Ehcache简介

解压缩

2014-05-20 21:03:32 661

原创 OSCache 学习(3)__缓存整个页面 & 缓存局部页面

管理类

2014-05-19 22:12:21 662

原创 OSCache学习(2)_缓存对象

很 显然

2014-05-19 21:59:41 706

原创 OSCache学习(1)Cache使用的必要以及OSCache的简介

该方式

2014-05-19 21:27:29 742

原创 ibatis学习(四)---ibatis3用like进行模糊匹配检索的写法

其实ibatis的文档中明确说明了参数的使用方法,有部分工作是留给我们自己做的,下面是说明文档的内容:Notice the parameter notation:#{id}This tells MyBatis to create a PreparedStatement parameter. With JDBC, such a parameter would beidentifi

2013-08-28 14:58:03 825

原创 Quartz学习(七)--Spring整合Quartz(MethodInvokingJobDetailFactoryBean方式)

一、该方式利弊  该方式通过MethodInvokingJobDetailFactoryBean在运行中动态生成,需要配置执行任务的目标类、目标方法。但是这种方法动态生成的JobBean不支持序列号,也就是说Job不能存到持久化。  该方式通常用于调用特定对象的一个方法。不用创建单独的job对象,只需要建立正常的业务对象,用这样方式去调用其中的一个方法。  该方式通过透明的使用

2013-05-02 14:45:48 3257

原创 Quartz学习(七)--Spring整合Quartz(JobDetailBean方式)

一、Spring创建JobDetail的两种方式   定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的使用Quartz达到定时任务开发的目的,总体说第二种对开发人员更方便!   配置Spring的任务调度抽象层简化了任务调度,在Quartz的基础上提供了更好的调度对象。Spring使用

2013-05-02 11:19:36 23011 2

转载 Quartz学习(七)--job生病了(抛出异常)时的处理

我们一直没有太深入的去完成 一个job 类,因为这是跟你的实际应用紧密相关联的,但是在你的job 处理过程中 如果 发生了异常,那么会怎么样处理呢 ? 客官您往下看…………------------------------------------我是分割线------------------------------------------------如果客官看过前面的几篇 烂的掉渣的 文

2013-04-30 22:01:08 2047

转载 Quartz学习(六)--错过的任务怎么办?

不知道大家在用Quartz的时候 有没有遇到这样一种情况:触发器设定每3秒钟触发一次 ,但是工作需要10秒钟的执行时间.因此,在一次任务结束执行前,触发器已经错失触发当这种情况下我们怎么处理呢,让我们一起学习一下......还是先贴代码:job类:StatefulDumbJob.javaimport java.text.SimpleDateFormat;i

2013-04-30 21:57:28 2071

转载 Quartz学习(五)--接收参数和维护状态

>如果你想在 某个job执行的时候传入参数,参数在job执行过程中对参数有所修改,并且在job执行完毕后把参数返回那么你需要学习一下现在的这个例子了,因为它正是你所想要的 ...... 我的建议是先把代码运行起来看结果,然后再去看代码.还是老套路,两个类 一个job类:ColorJob.java   一个调度类: JobStateExample.

2013-04-30 21:54:15 1258

转载 Quartz学习(四)--Cron表达式

SimpleJob.javaimport java.text.SimpleDateFormat;import java.util.Calendar;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class Si

2013-04-30 21:48:28 1557

转载 Quartz学习(三)--简单触发器(SimpleTrigger)

SimpleJob.javapublic class SimpleJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { // job 的名字 String jobName = context.getJobDe

2013-04-30 21:41:28 1546

原创 Quartz学习(二)--Quartz 框架核心接口

quartz核心接口一览    Scheduler    Job    JobDetail    Trigger    JobDataMap详解如下:  1、Job   作业是一个执行任务的简单java类。任务可以是任何java代码。只需你实现org.quartz.Job接口,并将你需要执行的任务代码写在execute()方法中即可。当Quartz确定该

2013-04-30 21:28:50 2443

原创 Quartz学习(一)--初始Quartz

一、什么是Quartz     1、quartz是一个作业调度系统(a job scheduling system),不但可以集成到其他软件系统中,而且还可以独立运行。     2、Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是

2013-04-30 18:36:32 3005 2

转载 ibatis学习(三)---ibatis与spring的整合

Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建(相当于用Spring来管理SessionFactory)。与hibernate类似,Spring 提供了SqlMapClientDaoSupport对象,我们的DAO可以继承这个类,通过它所提供的SqlM

2013-04-27 18:07:02 538

转载 ibatis学习(二)--ibatis使用介绍

SqlMapClient对象这个对象是iBatis操作数据库的接口(执行CRUD等操作),它也可以执行事务管理等操作。这个类是我们使用iBATIS的最主要的类。它是线程安全的。通常,将它定义为单例。(与hibernate中sessionFactory的定义类似)。如:import java.io.Reader;import com.ibatis.common.resources

2013-04-27 17:38:58 552

转载 ibatis学习(一)--ibatis介绍以及示例

一、介绍    iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以

2013-04-27 16:26:46 683

原创 Hibernate封装通用数据操作基类DAO

package com.util; import java.io.Serializable; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Set; import

2012-10-28 15:40:15 1880

原创 TextView: android中TextView实现单行跑马灯

textview中内容过长的话自动换行,但是调用measureText函数时发现返回值很不准确,单位也不确定,是pixel还是dip,都不准。后来想起textview中有个内容过长加省略号的属性,即ellipsize,可以较偷懒地解决这个问题,哈哈~用法如下:在xml中android:ellipsize = "end"    省略号在结尾android:ellips

2012-10-14 22:06:44 1508

转载 TextView:在TextView控件中单击链接弹出Activity

在5.2.1节和5.2.2节介绍了标签以及TextView自动识别的特殊文本(网址、电话号、Email等),这些都可以通过单击来触发不同的动作。虽然这些单击动作已经可以满足大多数需要了,但如果读者想在单击链接时执行任意自定义的动作,那么本节的内容非看不可。     现在让我们使用5.2.1节介绍的方法重新查看Html.java文件的内容,随便找一个处理Html标签的方法,例如,endA方法

2012-10-14 21:51:39 647

原创 JDBC深度封装的工具类(具有高度的可重用性)

package com.util;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect.Field;import java.sql.Connection;import java.sql.DriverManage

2012-10-06 23:52:11 1067

原创 java MD5加密

package util; /******************************************************************************* * MD5_SRC 类实现了RSA Data Security, Inc.在提交给IETF的RFC1321中的MD5_SRC message-digest * 算法。 ****************

2012-09-30 11:41:49 774

原创 java缩略图

package com.util;import java.awt.Color;import java.awt.Image;import java.awt.image.BufferedImage;import java.awt.Graphics2D;import java.io.File;import java.io.IOException;import javax.imageio

2012-09-30 11:35:45 657

Pager-taglib页面分页示例

这是关于paper-taglib分页框架的小小项目,导入myeclipse中部署到服务器可直接运行,包含了两种分页风格:普通样式和谷歌样式,可以在servlet中通过注释切换。

2013-05-08

Jsp 验证码

此demo完整的实现了jsp文件中的验证码功能,代码中有详细的注解

2012-10-15

图片防盗链(jsp)

防止他人引用自己的图片,或者盗用自己的图片

2012-09-12

url重写和禁止某个用户访问(jsp)

当我们的要访问的不是html时,我们可以使用url重写实现url欺骗。和封杀某一类用户

2012-09-12

jquery实现页面的异步加载(jsp)

jquery实现页面的异步加载,增强客户的体验,此demo中包含了两种方式实现页面的异步加载

2012-09-12

ajax无刷新登录(jsp)

此demo中包含两种方法实现ajax 无刷新登录

2012-09-12

Ajax实现自动补全和搜索功能(jsp)

Ajax实现自动补全和搜索功能,含有使用到的所有工具,以及实现的步骤文档和详细的代码说明

2012-09-12

Ajax实现自动补全和搜索功能

Ajax实现自动补全和搜索功能,含有使用到的所有工具,以及实现的步骤文档和详细的代码说明

2012-09-11

Jsp实现日历选择框

jsp实现日历选择框详细步骤,其中包括My97日历控件 My97日历控件帮助文档 以及实现的样例小demo

2012-09-06

在线编辑器(jsp实现)

jsp实现在线编辑器的小样例,其中包含实现步骤 和用到的一些控件

2012-09-06

java多线程文件传输(基于swing)

基于socket的多线程文件传输,包中含有整个工程的源代码(有详细的注解) 和 直接运行的打包生成的jar文件 。其中swing界面有待优化.....

2012-08-23

MyEclipse10注册机.rar

MyEclipse10注册机 ,可生成注册码,内附破解方法和步骤,让破解成为浮云!

2012-08-17

Java设计模式 帮助文档chm

Java设计模式(疯狂Java联盟版) 涵盖所用经典的设计模式,易查、易看、易懂!绝对干货,值得拥有!

2012-08-12

图形学课程设计 橡皮擦

计算机图形学课程设计 使用java语言在android平台上开发的橡皮擦,主要功能包括用手指可以再屏幕上涂鸦,可以使用橡皮擦擦出

2012-06-17

动物识别专家系统 人工智能(基于android开发)

动物识别专家系统,首先是添加动物规则,添加的规则以文件的形式存储在手机的sd卡上;然后可以根据输入的添加进行递进式查询,如果规则中有,则肯定能够查出,并显示出来查询的路径;如果规则中没有,则提示错误信息;可以自动根据不同动物的特征识别出该动物是什么动物,如有角无角,草食肉食等。

2012-04-04

apk反编译工具

将可安装的apk软件编译成可以在eclipse运行的代码,可供android开发者学习研究。同时还可以签名

2012-03-13

17个你必须牢记的Win7快捷键

17个你必须牢记的Win7快捷键 让你更炫的使用win7

2012-02-19

oracle 错误码大全 帮助文档

一一列举oracle的错误码 并分析产生的原因和解决的办法, 很适合oracle的进阶学习

2011-04-16

电脑知识学习宝典帮助文档

由此宝典可以让你轻松解决电脑故障和电脑的使用技巧,以及unix linux 显示器 硬盘故障 局域网罗 delphi教程等

2011-04-07

VMware下的Linux系统中如何安装VMTools

可以在VMware与主机之间拖放文件,实现主机和虚拟机linux的文件共享

2011-04-07

空空如也

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

TA关注的人

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