自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring MVC集成velocity扩展

1、扩展velocity的视图[code="java"]package org.christ.matrix.template.velocity;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;import java.util.Locale;i...

2013-07-23 17:18:50 289

原创 eclipse svn 忽略 target等目录

这个build失败的解决方案就是不要把你项目的 target目录放在src repository 里面,还有 .project 和.classpath 最好也别放到src repository 里。 具体的做法就是在新建项目的时候,在第一次commit 到 SVN 之前,先在项目的根目录设置一个 SVN 属性(我在eclipse 3.3 中,SVN插件是subclipse 1.4.0): 在ec...

2013-04-22 10:08:11 243

原创 如何发布你的Android应用程序

在发布你的应用程序之前,你首先要做的事情是为你的应用做数字化签名认证。在Google的Android开发者网站上,有一个整版都是介绍签名问题页 面,但如果你使用的是带有ADT (Android Developer Tools)插件的Eclipse来开发的,这个过程会变的出奇的简单:你在Package Explorer视图里右键点击你的应用项目名称,然后在右键菜单里选择“Android Tools...

2013-03-25 15:10:28 233

原创 【分布式系统工程实现】CAP理论及系统一致性

印象中CAP理论开始流行是从Amazon Dynamo的论文开始的,Amazon的CTO还在他的博客中介绍了最终一致性的概念,从此以后,各种会议和交流中都少不了CAP的影子。然而,对于分布式系统工程设计和开发来说,CAP意味着什么呢?CAP 理论由 Berkerly 的 Brewer 教授提出,三者的含义如下: 一致性 ( Consistency) :任何一个读操作总...

2013-03-08 16:05:59 172

原创 【分布式系统工程实现】分布式事务

CAP理论虽然告诉我们,一致性和可用性二者不可兼得,但这并不代表互联网系统都应该牺牲一致性,哪个特性更重要只有业务需求才能决定。ACID是单机事务的特性,不过在分布式系统中,由于两台机器理论上无法达到一致的状态(参考Fischer等的论文),需要引入一个单点进行协调,这就出现了著名的两阶段锁协议。两阶段锁(Two-phase commit)协议是每个分布式工程师必须掌握的协议,大致...

2013-03-08 16:03:01 131

原创 用消息队列和消息应用状态表来消除分布式事务

由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的...

2013-03-08 16:01:23 111

原创 ZooKeeper典型应用场景一览

[b]数据发布与订阅(配置中心)[/b]发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。 应用中用到的一些配置信息放到ZK上进行集中管理。这类场景通常是这样:应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个Watche...

2013-03-08 10:14:34 228

原创 成从武:其他人绕不开高德

高德对自己在移动互联网所处的位置很自信。其创始人兼CEO成从武说,“地图数据不仅仅是高德的基础,而且是整个移动互联网的基础,其他人绕不开高德。”以IOS系统案例推算,成从武相信上百万的APP中有1/3以上需要位置服务,而高德先后向谷歌和苹果的中国地图提供数据。高德目前提供的地图数据调用量已接近10亿次/天,数据使用方包括微信:你能“摇一摇”,不光因为腾讯,还因为高德。高德自己也生产APP,...

2012-12-17 11:05:35 529

原创 吃"软饭"的一些不良思考习惯

1. 认为“简单原则”,就是不加认真思考,制作最简单易于实现的系统。殊不知真正的简单是深思熟虑之后得到的结果。要多视角考虑,并且,必要时还需要跳出来思考,避免钻牛角尖,这样,才可能拿出真正简单有效的方案。2. 对于难以实现的需求,而不是认真客观地认识和挖掘他们,然后根据可用的技术和资源,找出合理的解决方案,而是否认这些需求的存在。这样往往实现的功能不能满足真正的...

2012-09-25 21:13:46 153

原创 可伸缩性架构常用技术--数据切分

1. 简介本来想写一篇可伸缩性架构方面的文章,发现东西太多了,久久未能下笔,这里首先把大家最关注的数据切分(Partition/Sharding)方面的内容先写完,给大家参考。我们知道,为了应对不断增长的数据,我们对数据进行切分,存储在不同的数据库里,本文提到的数据库在非特定指明的情况下,均指一个逻辑数据库(是一组数据库,比如Master-Slave),而非单一各个物理数据库。...

2012-09-25 21:09:39 144

原创 Spring Data —— 完全统一的API?

Spring Data 作为SpringSource的其中一个父项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。相关厂商内容白皮书下载:JBoss Enterprise Application Platform 6迁移指南白皮书下载:利用您的私有或混合云加速业务成果Amazon五星敏捷图书作者、敏捷教练Amr Elssama...

2012-09-23 01:54:57 231

原创 如何加深消费者对产品的印象

摘要: 上世纪90年代末,戴姆勒•克莱斯勒在公司内部成立了一个全新的部门。这个部门的职能不是设计,不是制造,也不是营销,而是研究和制作开关车门的声音。为 此,一位顶级的汽车工程师与我分享了他的有趣见解:如今人们的购车心理已和20年前大不相同。今天,消费者一走进汽车展...上世纪90年代末,戴姆勒•克莱斯勒在公司内部成立了一个全新的部门。这个部门的职能不是设计,不是制造,也不是营销,...

2012-09-23 01:53:58 679

原创 简单之美

近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自己的一些实践教训,让我觉得应该把这些资料汇总整理一下。如果要从讨论不同系统的众多资料中总结一条黄金法则的话,那只有一个词——“简单”;如果用一个英语单词来表达的话,那就是——KISS (Keep It Simple, Stupid!)。麻省理工方法与新泽西方法(MIT Approach vs. New Jersey...

2012-09-23 01:53:07 116

原创 DCI: 代码的可理解性

代码难以理解是软件行业的痼疾. 众多方法和方法论致力于解决这个问题, 不管主观还是客观. 造成理解困难的原因有很多, 我们今天讨论其中一种: 业务流程被分解在代码中, 支离破碎.而这个原因的引申问题就是: 业务流程在代码中如何组织? 对于这个问题, 争论从未停止:· Transaction Script vs. Domain Model· ...

2012-09-23 01:37:03 147

原创 Java编程中“为了性能”尽量要做到的一些地方

1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意...

2012-09-14 10:33:17 94

原创 淘宝Oceanbase云存储系统实践

淘宝Oceanbase云存储系统实践通俗地讲,云计算就是把基础设施以服务的形式打包对外销售,它是一种商业模式,而其中的云存储是技术难点。可以从两个维度分析云存储系统的特性:功 能和可扩展性,这是一个“鱼和熊掌”不容易兼得的问题。不同的数据规模,不同的事务和一致性要求,不同的系统故障容忍度,都可能导致不同的存储系统设计。 国外的互联网巨头Amazon、Google、Microsoft、Yahoo...

2012-09-05 19:51:54 185

原创 Java 5.0多线程编程

概述 1:三个新加的多线程包 2:Callable 和 Future接口 3:新的线程执行架构 4:Lockers和Condition接口 5: Synchronizer:同步装置 6: BlockingQueue接口 7:Atomics 原子级变量 8:Concurrent Collections 共...

2012-08-17 19:16:00 95

原创 Thread.setDaemon设置说明

Thread.setDaemon的用法,经过学习以后了解:1. setDaemon需要在start方法调用之前使用2. 线程划分为用户线程和后台(daemon)进程,setDaemon将线程设置为后台进程3. 如果jvm中都是后台进程,当前jvm将exit。(随之而来的,所有的一切烟消云散,包括后台线程啦)4. 主线程结束后, 1) 用户线程将...

2012-06-28 18:00:59 124

原创 使用MBean获取tomcat和jboss端口

[code="java"]/** * 根据协议和scheme获取服务端口号 * * @param protocol * @param scheme * @return */ protected Integer getPortByMBean(String protocol, String scheme) { MBeanServer mBeanServe...

2012-04-10 21:29:48 1048

原创 解决maven传递依赖中的版本冲突

传递依赖是maven最有特色的、最为方便的优点之一,可以省了很多配置。如a 依赖 b,b 依赖c 默认 a也会依赖 c。但是 也会带来隐患,如版本冲突。当然maven也考虑到解决办法,可以使用exclusions来排除相应的重复依赖。但是我们还会遇到一个严重的问题,那就是,我怎么知道是哪个包的传递依赖产生的冲突 ?那该怎么办呢?当然,maven也会有相应的解决方案。 首先,你要在...

2012-03-28 14:39:17 141

原创 Spring技术内幕——深入解析Spring架构与设计原理

IOC的基础下面我们从IOC/AOP开始,它们是Spring平台实现的核心部分;虽然,我们一开始大多只是在这个层面上,做一些配置和外部特性的使用工 作,但对这两个核心模块工作原理和运作机制的理解,对深入理解Spring平台,却是至关重要的;因为,它们同时也是Spring其他模块实现的基础。从 Spring要做到的目标,也就是从简化Java EE开发的出发点来看,简单的来说,它是通过对POJO开...

2012-03-08 19:48:25 147

原创 JVM运行时数据区

JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。其他的数据依赖于每一个线程,在线程创建的时候创建,在线程退出的时候销毁。[img]http://dl.iteye.com/upload/attachment/571990/d996052e-eded-30a3-8488-4ceb3c7fa860.jpg[/img]2.5.1 程序...

2012-03-07 13:15:50 121

原创 iBATIS之父:iBATIS框架的成功蜕变

推荐阅读:1.《iBATIS 实战》——国内第一本iBATIS巨著(iBATIS之父撰写)[url]http://blog.csdn.net/turingbooks/article/details/2449981[/url]2. 图灵4月精彩新书预告[url]http://blog.csdn.net/turingbooks/article/details/2438955[/...

2012-03-01 13:49:37 90

原创 spring集成quartz执行定时任务

[code="xml"] [/code]

2012-01-08 18:02:31 90

maven在项目中引入spring依赖

引入spring框架[code="xml"] 4.0.0 laurel laurel jar 1.0.0-SNAPSHOT Started with Laurel 3.1.0.RELEASE 2.5 ...

2011-12-27 13:38:58 1553

JMS 使用 ActiveMQ 传送文件

这里使用的 MQ 中间件是开源的 ActiveMQ,我们没有采用 BytesMessage 来按字节传送文件,而是 ActiveMQ 为我们提供了 org.apache.activemq.BlobMessage,可以用它来传送大对象。org.apache.activemq.ActiveMQSession 中有以下几个创建 BlobMessage 对象的方法:createBlobMessag...

2011-12-22 19:55:42 588

原创 互联网用户常见心理特征

文章出处:Taobao UED近半年持续关注了一些用户反馈和Customer Service Phone,从一些常见问题中总结出了八点互联网用户常见心理特征,在此共享,希望能共同努力提高用户体验。1:惯性用户:“你们的排序按钮为什么没有了?”客服:“亲,我们把它放在右边了,这样更加的明显哦。”用户:“你们很闲吗?没事弄这个按钮做什么!”有一个故事,说...

2011-12-21 16:14:27 168

原创 使用ibatis防止sql注入

为了防止SQL注入,iBatis模糊查询时也要避免使用$$来进行传值。下面是三个不同数据库的ibatis的模糊查询传值。[code="SQL"] mysql: select * from stu where name like concat('%',#name #,'%') oracle: select * from stu where name like...

2011-12-19 19:59:12 241

java的引用探讨

Reference 是一个抽象类,而 SoftReference,WeakReference,PhantomReference 以及 FinalReference 都是继承它的具体类。接下来我们来分别介绍和分析强引用以及 java.lang.ref 包下各种虚引用的特性及用法。StrongReference, SoftReference, WeakReference 以及 Phanto...

2011-12-18 16:03:12 179

原创 webx总结

Webx框架指南Michael ZhouWebx框架指南Michael Zhou出版日期 2010-11-13iii引言 ..................................................................................................................................

2011-12-09 15:15:26 881

原创 查看开源项目源码

[url]http://grepcode.com/[/url]

2011-11-04 16:05:44 138

原创 在Tomcat中通过JOTM支持JTA

[code="xml"] WEB-INF/web.xml [/code][code="xml"] ...

2011-11-04 15:57:45 240

原创 ClassLoader

[code="java"]package org.liufei.neta.lib;import java.io.File;import java.io.IOException;import java.net.URL;import java.security.AccessController;import java.security.PrivilegedAction;im...

2011-11-04 15:11:01 126

原创 仿照Hibernate实现一个SQLite的ORM框架

那么先来看看使用实体对象[code="java"]package test;import java.io.Serializable;import org.liufei.sqlite.annotation.Column;import org.liufei.sqlite.annotation.Entity;import org.liufei.sqlite.metadat...

2011-09-30 20:06:44 143

原创 如今的开发者应了解哪些过去闻所未闻的新技能

除了编程技术之外,如今的软件开发者们还需要了解许多在过去闻所未闻的技能如今的软件开发者们已经不必像前辈们那样担心诸多因素,尤其是编码工作中最大限度降低内存占用(即使这意味着执行时间将会大大延长)或者局域网连接最大带宽不能超过14.4KB每秒等等。(尽管其中有些时至今日仍然具有一定的指导意义甚至有重新发挥作用的可能,但毕竟不是主流趋势。)不过从另一个角度来说,当下在软件开发、硬件开发...

2011-09-27 09:57:52 136

原创 sql server2005备份还原

1、先建立一个同名数据库,停止SQL SERVER20052、将没有日志的的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。3、在查询分析器中运行如下代码:[code="SQL"]alter database 数据库名 set emergency —将数据库设置为紧急状态use master declare @databasename v...

2011-09-22 11:29:59 109

原创 java压缩文件

[code="java"]package org.liufei.net.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import j...

2011-09-20 11:09:07 118

原创 apache mina开发文件传输服务器

服务器接收端[code="java"]/** * */package org.liufei.net.file;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;import j...

2011-09-19 18:03:26 267

原创 使用 Apache MINA 2 开发网络应用

简介: Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。本文将介绍 Apache MINA 2 的基本概念和 API,包括 I/O 服务、I/O 会话、I/O 过滤器和 I/O 处理...

2011-09-19 10:01:24 100

原创 软件架构师应该知道的97件事

软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾。做到这些绝非易事, 博文视点 即将翻译出版的新书《软件架构师应该知道的97 件事》(97 Things Every Software Architect Should Know )探讨的就是这个主题。 本书的编辑Richard Monson-Haefel 是畅销书《 E...

2011-09-14 15:59:50 74

空空如也

空空如也

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

TA关注的人

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