ALL is Well!

敏捷是一条很长的路,摸索着前进着

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  30 随笔 :: 23 文章 :: 71 评论 :: 0 Trackbacks

2010年10月4日 #

     摘要: 快速排序的算法思想:
快速排序采用了分治的策略,将原问题分解为若干个规模更小但结构与原问题相似的子问题。用递归方法解决子问题,然后将这些子问题的解组合为原问题的解。
  阅读全文
posted @ 2011-04-09 17:37 李 明 阅读(2057) | 评论 (1)编辑 收藏

     摘要: 在项目中实现了一个工具(独立运行的Java工程,打成jar包后 通过 java -jar **.jar 执行的。),该工具通过配置能够实现一些业务功能,
并且该工具提供了接口与抽象类,供其他人扩展它的功能。

这就涉及到一个问题:别人在扩展它的时候,需要引入一些jar或者配置文件,本来工具依赖的jar和配置文件都记录在manifest文件中了,
不可能别人加了jar包和配置文件就要修改manifest文件的。
所以我为工具提供了另外一个入口,通过 该通过的配置文件 进行配置 路径,由于考虑到扩展的人可能多人或者多组,所以配置文件如下定义:
以ext_classpath开头的,诸如 ext_classpath_biz1等对应的路径均被加入到classpath中。
以ext_resourcepath开头的,诸如 ext_resourcepath_biz1等对应的路径均被加入classpath中。  阅读全文
posted @ 2011-04-01 20:39 李 明 阅读(13681) | 评论 (1)编辑 收藏

posted @ 2011-03-30 13:07 李 明 阅读(715) | 评论 (0)编辑 收藏

posted @ 2011-03-17 11:17 李 明 阅读(2810) | 评论 (0)编辑 收藏

     摘要: 问题:
freemarker在解析数据格式的时候,默认将数字按3位来分割,例如1000被格式化为1,000,这样做看似美观,但在实际操作时候会带来问题。例如我一个页面有一个元素,该元素的值由后台绑定且超过1000,那么当我要使用这个元素的值的时候,便会出现问题。  阅读全文
posted @ 2010-12-29 14:54 李 明 阅读(5804) | 评论 (6)编辑 收藏

     摘要: 总体上来说,jMock 是一个轻量级的模拟对象技术的实现。它具有以下特点:
1.可以用简单易行的方法定义模拟对象,无需破坏本来的代码结构表;
2.可以定义对象之间的交互,从而增强测试的稳定性;
3.可以集成到测试框架;
4.易扩充;
  阅读全文
posted @ 2010-12-17 09:28 李 明 阅读(12051) | 评论 (3)编辑 收藏

     摘要: 浅谈TDD
JUnit4的用法介绍
测试方法 @Test
@Before(SetUp)
@After(TearDown)
@Before和@After小结
@BeforeClass和@AfterClass
测试异常@Test(expected=XXXException.class)
参数化测试
  阅读全文
posted @ 2010-12-15 15:34 李 明 阅读(13190) | 评论 (1)编辑 收藏

     摘要: 本次分页组件着重于页面(Freemarker部分)、及Action部分。
至于Service及持久层处理,只是做了一个模拟的实现,实际开发中,我是应用了iBatis,封装了分页调用。
由于用法有所不同,所以就不放在源码范围内,也不在这里介绍了。
这里的分页功能只提供了 上一页、下一页、指定页 的分页,但在分页Java代码中包含了 首页、末页的实现。有需要的可自行添加。


分页的效果如图:  阅读全文
posted @ 2010-12-01 17:35 李 明 阅读(5846) | 评论 (4)编辑 收藏

     摘要: struts2 的Result type chain:基本用途是构造成一条动作链。前一个Action将控制权转交给后一个Action,而前一个Action的状态在后一个Action里仍然保持着。
但这种数据传递前提是数据要在Value stack里。
本文介绍基于Struts2 Result type 为 chian时, 通过增加拦截器、注解的方式,实现Action之间的数据传递。所传递的数据可以不在Value stack里。
实现的基本思路是Result type为chain时,在准备执行当前Action时,可以得到上一个Action对象的实例,上一个Action的实例被加入到了ValueStack中...
  阅读全文
posted @ 2010-11-19 17:25 李 明 阅读(5281) | 评论 (2)编辑 收藏

     摘要: 默认情况下,freemarker的变量必须有值,如果没有被赋值的变量在页面上使用就会抛出异常,出错的信息都会显示在页面上,让人感觉不爽(开发时还可以忍忍)。
以下介绍四种解决办法。  阅读全文
posted @ 2010-11-17 13:54 李 明 阅读(2316) | 评论 (0)编辑 收藏

     摘要: 统一处理系统中的异常并将其以固定的格式显示在页面上。

当使用js做前台的表单验证的时候,提示用户的输入有问题,则可以使用 Message.showMsg('...'),提示信息也会显示在同一个位置。

这样就实现了异常提示信息的统一展示了。

这是一个比较简易的实现,只提供一个思路。  阅读全文
posted @ 2010-11-16 14:53 李 明 阅读(2783) | 评论 (0)编辑 收藏

     摘要: 在上一篇 Hessian构建分布式系统应用 的基础上,我们对程序进行改进。
现在有以下比较突出的问题:
a.如果hessian服务端我要做的业务很多,怎么办?
我要定义很多个接口,然后再写实现类,最烦的是还要配置它。
我的设想是,hessian服务只提供一个归口,再此对外的接口实现中反射调用具体的业务类。

b.客户端在调用时,每次调用远程接口都要用以下代码吗:  阅读全文
posted @ 2010-10-17 22:10 李 明 阅读(1695) | 评论 (1)编辑 收藏

     摘要: Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。
采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

本文将分为以下几个内容:
一、一个简单的Hessian调用例子
二、Spring+Hessian的例子
三、使我们的调用变得通用

第一�%  阅读全文
posted @ 2010-10-17 21:11 李 明 阅读(2815) | 评论 (0)编辑 收藏

     摘要: 通过上一篇 利用自定义Java注解实现资源注入 介绍的方法,我们实现了通过自定义注解完成了对DataSource资源的注入,但在实际应用中,我们通常不希望去显式的去声明这样的MyAnnotationBeanProcessor对象来帮助我们完成注入,而是希望通过Spring帮我们“悄悄地”完成。  阅读全文
posted @ 2010-10-04 10:31 李 明 阅读(8223) | 评论 (1)编辑 收藏

     摘要: 这里是想介绍一下如何通过Java的注解机制,实现对bean资源的自动注入。主要介绍实现方法,至于例子的实用性不必讨论。
需求:一个应用有两个数据库,分别为DB-A,DB-B。
假设持久层框架使用iBatis来完成,那么SqlMapClient对象在创建时,对于两个不同的DB连接要有两个不同的SqlMapClient对象,
假设我们有一个Service类为MyService.java,该类中有两个SqlMapClient对象分别对应着DB-A、DB-B。  阅读全文
posted @ 2010-10-04 10:19 李 明 阅读(5333) | 评论 (0)编辑 收藏