自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

转载 持续交付的8条原则

软件的发布或部署过程必须是可重复且可靠的。这就引出了下一条…所有操作的自动化!我很难相信“手工操作是可重复且可靠的”这种说法。所以一定要将所有重复性的操作变成自动化的,从而变得可靠。如果某件事情做起来很困难或者让你觉得很痛苦,那么就尽早且尽可能频繁地去做。乍一看上去,这么做太蠢了

2011-08-18 09:32:51 717

原创 煎三文鱼配西兰花

<br />原料:三文鱼半斤  西兰花半颗<br />1.三文鱼去皮切片,大概0.5cm厚,西兰花掰小朵<br />2.平底锅小火加入橄榄油。油要稍微多一些。加入两颗蒜泥<br />3.放入三文鱼一面煎3-5分钟,煎的过程洒少量百里香和盐<br />4.西兰花焯水后放入煎锅,加少量生抽,稍作翻炒后起锅<br /> <br />特色:鱼肉香,西兰花有鱼的香味

2011-04-27 10:38:00 1527

原创 android画图板原理

折磨我很久的android画图板原理,终于在给孩子换尿布的时候想通了:D

2010-12-15 10:57:00 2834 4

原创 Spring Component-scan和eclipse的兼容问题

<br />Spring使用component-scan的时候,如果把spring bean打包到jar文件中,spring无法找到相应的bean<br />要处理正确很简单:当使用eclipse export成.jar的时候,把add directory entries选上就可以了

2010-09-15 20:47:00 1224 3

转载 NBA底层球员的活法

NBA底层球员的活法---其他工作何尝不是啊

2010-08-04 17:12:00 2116

原创 猜猜看,Hibernate会执行几句SQL(一)

 POEAA中介绍了ORM中最重要的模式之一:Unit Of Work。看似简单,实现起来却非常复杂。Hibernate完美的实现了这个模式。以下我用一系列的例子来分析Hibernate的处理机制 下面有三个例子,猜猜看Hibernate会执行几句SQL(省略事务处理代码,实体对象叫User,假设主键是自增型的) 例1:User user = new User();

2010-04-26 14:51:00 872

原创 用javassist调试程序

当我研究一些复杂源码(比如Hibernate)的时候,常常需要程序运行期,某个变量的状态是什么。通常做法是导入Hibernate的源码,编译,然后加断点或者System.out。可是,导入源码常常是很麻烦,源码量也大,我只是为了看一个变量状态,至于这么麻烦吗。 这个时候javassist工具就可以帮忙了。 曾经大致的比较了一下这类工具:cglib/asm/javassist

2010-04-21 16:04:00 1959

原创 模式词语

很多类的命名都会隐喻着某些模式,我把这些命名称为模式词语。让我们看看有哪些词语经常会作为模式词语吧 和模式同名的词语Factory:满大街的Factory,就不说了Proxy:偶尔用,比如java.lang.reflect.ProxyBuilder:常用,但是并不意味着使用Builder模式,所有创建某一类东西的类都可能叫做BuilderVisitor:经典的同名词

2010-04-05 10:54:00 1024

原创 泛型工厂类

不大使用复杂的泛型,用的时候经常忘记。在此记录一下吧泛型的工厂public class TestProduct { public static void main(String[] args) { Factory factory = new FactoryImpl(); ProductImpl p = factory.getProduct(ProductImpl.class

2010-03-03 16:33:00 1187

原创 easyb,我对你终于失去了耐心

很多年前,我还不知道BDD为何物。当我做测试的时候,我就想能不能有一个工具,能够边写测试边写文档,测试完成了,文档也完成了。甚至想做一些annotation,按照某个规范编写测试,就能根据这些annotation产生出文档。一直没有时间做,就把这事情放下了,直到遇见的jsspec我开始使用jsspec编写BDD测试。可是不过瘾。因为js大量的是UI交互,把这些交互过程也写成jssp

2009-10-16 16:18:00 1751

原创 eclipse4.0(e4)的例子跑起来

刚看到eclipse4.0将采用新的xwt平台,全新的概念。赶紧去官方网站下载了一个试试。 一进入就不一样嘛。赶紧运行一下它的两个demo。 1.下载eclipse e4 0.9http://download.eclipse.org/e4/downloads/drops/R-0.9-200907291930/index.htmleclipse-e4-repo-i

2009-08-08 13:16:00 2808

原创 docbook自动加上章节号

docbook默认的xsl是不会生成章节号的,要加上章节号很简单。找到docbook-xsl/html/param.xsl修改成重新编译,OK!

2009-07-27 13:40:00 625

原创 香辣鱼块

 原料:鲈鱼一条(1斤以上)配料:盐、鸡精、姜、葱、干辣椒(5个)、蒜头(4瓣)、豆瓣酱(两勺)、料酒做法:鲈鱼洗净后去头尾切略比麻将小的块,加一勺盐和料酒腌20分钟加4勺油,放入鱼块小火煎5分钟表面略焦依次加入干辣椒段、姜末、蒜末、葱末、豆瓣酱、鸡精再煎一分钟烹料酒,加水和一勺糖没过鱼块,大火烧开转中火烧至收汤特点:鱼肉香辣可口,制作简单省时要点:要腌

2009-04-19 20:35:00 1141

原创 墨鱼烧肉

原料:五花肉一斤(不用很肥的,稍微带点肥就可以),墨鱼一斤(4-5只)配料:盐、鸡精、姜、葱、料酒、八角做法:五花肉洗净,放两勺油,放五花肉中小火稍加煸炒3分钟放姜、葱、烹料酒后置于砂锅,加盐、鸡精、糖、八角放至1/3锅水,旺火煮开2分钟转微火煮一个小时以上放入墨鱼继续煮半个小时出锅特点:肉嫩而且有墨鱼的咸香,比红烧肉更美味要点:肉不要煸炒老了,稍微炒一下就

2009-04-19 20:23:00 871

原创 Groovy基础语法

开始学习Groovy内容主要来源于 http://www.ibm.com/developerworks/cn/java/j-groovygrails/index.html本文主要涉及一些简单语法和概念package study/** * Groovy的对象 */public class GroovyObject{    static void main(args){        println 

2009-01-05 14:33:00 1947

原创 Java移位运算符定义常量

一直忽略这个基本技术。看Eclipse源码的时候经常发现用移位运算符定义常量。来看看这是怎么用的吧。public static final int SELECTED = 1 public static final int FOCUSED = 1 public static final int BACKGROUND = 1 public static final int FOREGROUND = 1

2008-12-01 15:06:00 813

原创 Spring的FactoryBean与PropertyEditor

Spring的FactoryBean有以下功能:通过自定义的Factory类创建自己需要的对象,而不是使用Spring内置的new(或者class.forName)来创建对象。这样创建的对象有以下好处:1.和Spring无缝连接,结构清晰2.可以根据自己的要求创建一些复杂的对象,便于重用。例如hibernate的SessionFactory就可以是一个FactoryBean,它需要通过配置获得Da

2008-11-03 15:23:00 1406

原创 扩展swt combo

 swt的combo有两个麻烦的问题:如果选中上次选中的内容,它照样会触发addSelectionListener方法如果使用setData(String key, Object value)时,必须设定key值。通常会使用index作为key值。但是如果删除了一项,它的index会自动-1,不能和key相对应了为了解决这个问题,重新写了一个Combo类要解决问题1,写了一个新的接口:public

2008-10-14 16:27:00 4533

原创 mootools setOptions 发生too much recursion问题

 两个很简单的类Container = new Class({ Implements: [Events, Options], layout: null, initialize: function(options){ this.setOptions(options); }, setLayout: function(l){

2008-07-23 10:30:00 1496 1

原创 Spring调用informix存储过程的种种奇怪之处

Spring调用informix存储过程的种种怪问题: 如果informix存储过程中有事务,spring使用DataSourceTransactionManager会启动事务上下文,无论是propagation="NOT_SUPPORTED"还是propagation="NEVER",都会报错:already in transaction 如果此类不被AOP 拦截,还是会

2008-01-25 17:39:00 1133

原创 使用信号量管理多线程

应用场景如下:生产者是单线程程序,会从数据库获得数据插入阻塞队列消费者是多线程程序,会从阻塞队列获得数据进行处理为了保持一个较好的并发量,系统需要设置消费者的最高并发数程序如下:import static java.util.concurrent.TimeUnit.MILLISECONDS;import java.util.ArrayList;import java.util.Iterat

2007-12-05 14:24:00 724

原创 一种js构造函数的写法

mootools 1.2b1有了很大的变化,其中,把构造函数简化一下是这么写的:var Native = function(options)...{    var object = options.initialize;    return object;};var Hash = new Native(...{    initialize: function(object)...{    

2007-11-30 16:34:00 2804 2

原创 使用yui-ext中的createCallback把函数的作用域绑定到window

yui-ext支持把函数绑定到不同作用域,yutil.js中有代码如下:Function.prototype.createCallback = function()...{  var args = arguments;  var method = this;  return function() ...{    return method.apply(window, args);  };}

2007-02-08 15:37:00 1359

原创 使用js实现observer模式

在yui中,大量使用customEvent。何为customEvent,实际就是一个观察者observer。下面给出这个observer的实现html>    head>        meta http-equiv="Content-Type" content="text/html; charset=GB2312" />        title>实现Observer模式.title> 

2007-01-19 10:52:00 5912

原创 忽悠,你就使劲忽悠

有本书叫,是普元公司的CTO写的如今我们的客户,从项目经理到管IT的副总人手一本,都说那东西好我们的老板,不懂任何技术的老板看了一下也说那东西好.好在哪里?我得看一下吧.现在让我我慢慢道来.1.好在方法论构件中国有几章是写方法论的.比如:如何进行需求分析,如何定义软件开发的流程等等.再看看,很眼熟啊,那需求不就是USE CASE嘛,那流程,不就是RUP嘛不过,简化了,大大的简化了.简化到那些白痴项

2006-11-03 10:25:00 851

原创 移:内部匿名类、事件监听、回调、Observer模式

内部匿名类、事件监听、回调、Observer模式在和界面相关的开发中,经常会使用内部匿名类实现事件监听。而内部匿名类的好处是很容易实现回调,配合使用观察者模式,可以很方面的事件监听模型。例子如下: //界面类public class TestViewer extends TreeViewer { Model model; //构造函数 public TestViewer(final Composi

2006-09-13 15:54:00 1270

原创 移:使用没有名字空间的xmlbeans

使用没有名字空间的xmlbeansxmlbeans进行xml - java bean映射很方便,只需要写一个xsd文件就可以。并且,它是bea的核心工具之一,质量和稳定性应该有保障 要在某个package中生成相应的java bean,最简单的方法是使用名字空间,即xmlns:之类的东东。可是问题也出现了:我们和其他软件的数据交换接口xml文件中并没有xmlns属性,比如spring的配置文件如果

2006-09-13 15:53:00 953

原创 移:强悍的ANTLR Lexer

强悍的ANTLR LexerANTLR的Lexer不是基于DFA的,所以更加灵活比如,我要解析一段这样的代码,class的大括号{}需要解析,method的大括号{}内的内容不需要解析,只要作为一个整体就可以class clazz{ test1(){  abc; }  test2(){  {   efg;  } }} code.g:header{ import java.util.*; impor

2006-09-13 15:52:00 2464 1

原创 移:使用easymock单元测试

使用easymock单元测试以webwork的ApplicationMap的get方法为例        //建立mock对象        mockControl = MockControl.createControl(ServletContext.class);        mockServletContext = (ServletContext) mockControl.getMock()

2006-09-13 15:49:00 1148

原创 移:工作流、规则引擎、领域模型之一:工作流的内涵

工作流、规则引擎、领域模型之一:工作流的内涵工作流看似很复杂,仔细想来也不过三部分内容:1.流程控制:消灭if-else和switch-case语句2.状态控制:对于一个领域对象,它的状态完全有工作流管理软件定义。程序中不再包括getStatus(),getFlag()之类的内容,业务表的status字段也应该放在工作流管理软件的状态表中统一规划.3.角色权限控制:系统中定义好某个应用角色的权限,

2006-09-13 15:48:00 1181

原创 移:webwork的bug?

webwork的bug?OGNL映射对象时,如果对象定义成:List list = new XWorkList(Integer.class);映射会报错:java.lang.InstantiationException: java.lang.Integer原因在于XWorkList的get方法创建对象时,会调用class.newInstance()而newInstance方法是无法创建不带无参数构

2006-09-13 15:47:00 853

原创 移:webwork的多行提交

webwork的多行提交webwork使用拦截器和OGNL自动给对象赋值和struts类似,如果要给list赋值,必须指定list里面对象的类型所以,在定义Form对象时,我们只需要这样定义:List users = new XWorkList(User.class);就能够自动赋值了

2006-09-13 15:46:00 1147

原创 移:扩展OGNL

扩展OGNLOGNL会自动把字符串内容树映射到对象树中。但是对于空对象必须自己做处理,处理方法是继承NullHandler接口,下面的例子会自动创建空对象。但是对于List等还未作处理 public class TestOGNL {     public static void main(String[] args) throws Exception {        try {         

2006-09-13 15:45:00 1175

原创 移:使用Spring AOP实现MVC拦截器

使用Spring AOP实现MVC拦截器Webwork实现了拦截器,但未用AOP技术,只不过是预留了接口。下面定义一个使用Spring AOP作为拦截器的伪代码定义Action,就是AOP中的Target:public interface Action {    public void setDomain(DomainObject object);//设置领域对象,每个Action都有一个领域对象

2006-09-13 15:44:00 2735

原创 移:Spring AOP的简单例子

Spring AOP的简单例子一个使用Spring AOP的简单例子有一个UserLogger类,用于记录user信息:public class UserLogger {    private String userName = "";    public void setUserName(String i) {        this.userName = i;    }    //记录用户信息

2006-09-13 15:43:00 1159

原创 移:AOP技术原理

AOP技术原理AOP在JDK1.3开始被支持,体现在java.lang.reflect.InvocationHandler和Proxy类。对于InvocationHandler的子类,都会被执行invoke方法代替原先的方法。例如有一个类Service,我们需要在Service的所有方法前加上事务管理代码,那么需要定义一个ServiceProxy继承自InvocationHandler,它包含实例

2006-09-13 15:39:00 1077

原创 移:使用Struts提交多行数据

使用Struts提交多行数据以下是使用struts提交多行数据的例子,提交多行数据至SurveyListForm:提交页面form.jsp,用于提交两条数据,注意[]的使用:响应页面index.jsp(survey.jui),用于获得数据: struts-config.xml:      SurveyAction:public class SurveyAction extends Action {

2006-09-13 15:38:00 2359

原创 移:Naked Objects

一个SOA程序通常是层次结构的。例如,我们需要实现一个用户管理的程序,通常需要完成以下步骤:建立一个user表建立一个User对象建立UserDAO类建立UserService类建立userlist.jsp用户列表页面建立userModify.jsp用户修改页面建立Hibernate的相关xml文件建立Spring的相关配置建立Struts的相关配置建立测试类进行单元测试...完成一个简单的工作需

2006-09-13 15:37:00 1035

原创 移:该死的java中文问题

丑陋的java中文问题折腾我一下午 目标:从Oracle数据库获得数据写文件至HP Unix文件系统开发环境:windowsXP、Eclipse3.1运行环境:HP Unix数据库:Oracle 由于从数据库获得的字符集是GBK,而操作系统是8859_1,所以必须这样转换:data = new String(data.getBytes("GBK"), "8859

2006-09-13 15:31:00 785

原创 移:xdoclet2学习笔记

一个Xdoclet2插件由三部分组成:TemplateEngine,MetadataProvider,WriterMapper,通常使用构造函数来建立一个Plugin。TemplateEngine表示使用的模版库,可以选择JellyTemplateEngine和VelocityTemplateEngine。MetadataProvider表示数据来源,xdoclet2通过qdox来获得java s

2006-09-13 15:25:00 1215

自己动手写开发工具电子书

自己动手写开发工具 其实,这个书是叫你怎么写eclipse插件的 很久以前看过,还是有点价值的

2011-08-24

J2EE6 规范中文版

J2EE规范 第1章 引言 1.1 感谢 1.2 版本1.3的感谢 1.3 版本1.4的感谢 1.4 版本5的感谢 1.5 版本6的感谢 第2章 平台概述 2.1 体系结构 2.2 Profile(自定义规范) 2.3 应用程序组件 2.4 容器 2.5 资源适配器 2.6 数据库 2.7 Java EE标准服务 2.8 互用性 2.9 产品标准的灵活性 2.10 Java EE产品的扩展 2.11 平台角色 2.12 平台协议 2.13 J2EE 1.3中的变化 2.14 J2EE 1.4中的变化 2.15 Java EE 5中的变化 第3章 安全 3.1 简介 3.2 一个简单的例子 3.3 安全体系结构 3.4 用户验证的必要条件 3.5 授权条件 3.6 部署标准 3.7 未来的方向 第4章 事务管理 4.1 概述 4.2 标准 4.3 事务的互用性 4.4 本地事务优化 4.5连接共享 4.6 JDBC和JMS部署问题 4.7 双相提交支持 4.8 系统管理工具 第5章 资源,命名和注入 5.1 概述 5.2 JNDI命名上下文环境 5.3 Java EE平台角色的职责 5.4 简单环境入口 5.5 Enterprise JavaBeansTM 5.6 Web服务的引用 5.7 资源管理器连接工厂的引用 5.8 资源环境的引用 5.9 消息目的地的引用 5.10 用户事务的引用 5.11 事务同步注册表的引用 5.12 ORB的引用 5.13 引用持久化单元 5.14 持久化上下文的引用 5.15 应用程序名称和模块名称 5.16 检验器和检验器工厂的引用 5.17 数据源资源定义 5.18 引用受管理的Bean 5.19 Bean管理器的引用 5.20 支持依赖注入(JSR-330) 第6章 应用程序编程接口 6.1 必须的API 6.2 Java平台Java SE标准 6.3企业级JavaBeansTM 3.1标准 6.4 Servlet 3.0标准 6.5 JavaServer PagesTM标准 6.6 Expression Language标准 6.7 JavaTM Message Service 6.8 JavaTM Transaction API 6.9 JavaMailTM 1.4标准 6.10 Java 连接器体系结构标准 6.11 Java EE Web服务1.3标准 6.12 JAX-RPC 1.1标准 6.13 JAX-WS 2.2 标准 6.14 JAX-RS 1.1标准 6.15 JAXB 2.2 标准 6.16 JAXR 1.0 标准 6.17 API 1.1标准 6.18 API 1.2 标准 6.19 JACC 1.4 标准 6.20 JASPIC 1.0 标准 6.21 JSR-45 标准 6.22 SJSTL 1.2 标准 6.23 Web Services 2.1 标准 6.24 JavaServer 2.0 标准 6.25 Java平台公共注解1.1标准 6.26 Persistence API 2.0 6.27 Bean Validation 1.0 6.28 Managed Beans 1.0 标准 6.29 Interceptors 1.1 标准 6.30 Contexts Dependency 6.31 Dependency Injection 第7章 互用性 7.1 互用性介绍 7.2 互用性协议 第8章 应用程序组装者和部署 8.1 应用程序部署的生命周期 8.2 库的支持 8.3 类加载标准 8.4 应用程序组装 8.5 部署 8.6 应用程序的XML Schema 8.7 Java EE XML Schema定义 第9章 Profile 9.1 简介 9.2 定义Profile 9.3 Profile的总体原则 9.4 标准的扩展 9.5 所有Java EE Profile标准 9.6 Java EE Profile可选特性 9.7 完整的Java EE产品标准 第10章 应用程序客户端 10.1 概述 10.2 安全 10.3 事务 10.4 资源,命名和注入 10.5 应用程序编程接口 10.6 打包和部署 10.7 程序客户端的XML Schema 第11章 服务供应商接 11.1 JavaTM EE连接器体系结构 11.2 容器Java服务提供方协议 11.3 JavaTM事务API 11.4 JavaTM持久化 11.5 XML Web服务提供的API 11.6 JavaMailTM 第12章 兼容性和迁移 12.1 兼容性 12.1 迁移 第13章 未来的方向 13.1 JNLP(Java Web Start) 13.2 Java EE SPI 附录 附录A 早期版本的部署描述符 附录B 修订历史 科瑞网酷

2011-08-24

从惊讶到思考 作者:马丁.加德纳

从惊讶到思考,经典的数学悖论书 作者:马丁.加德纳

2009-01-20

空空如也

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

TA关注的人

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