`
文章列表
这周我做了一个画图表的项目,需要可视化显示数据。我研究了一下图表生成代码,推荐下面10个免费的图表生成代码。   Flot - Flot 为 jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域等)。   Open Flash Chart - Open Flash Chart 是一个 Flash 图表组件,很容易安装,提供以下语言的API: PHP, Perl, Python, Java, Ruby on Rails, and .Net 来控制图表。   AmCharts - AmCharts 是一个动画交互Flash图表 ...
常见的 Tomcat 5 表单编码提交后乱码的解决方案有很多, 有改 Tomcat Connector 属性的, 有加过滤器的. 但是 Tomcat 自带的那个过滤器只解决了 POST 方式的乱码却不能处理 GET 方式的乱码.  在这里那我就给出一个不需要修改任何 Tomcat 配置文件的完美解决中文问题的过滤器的代码: 首先是我们的测试页面: GET 方式: POST 方式: index.jsp <%@ page language="java" import="java.util.*" pageEncoding="GBK" ...
简介 JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。这两个牛人中 Erich Gamma 是 GOF 之一;Kent Beck 则在 XP 中有重要的贡献(你觉得眼熟一点都不奇怪)。 正如常言道:“麻雀虽小,五脏俱全。” JUnit设计的非常小巧,但是功能却非常强大。 下面是JUnit一些特性的总结: 1) 提供的API可以让你写出测试结果明确的可重用单元测试用例 2) 提供了三种方式来显示你的测试结果,而且还可以扩展 3) 提供了单元测试用例成批运行的功能 4) 超轻量级而且使用简单,没有商业性的欺骗和无用 ...
RowSet 简介 javax.sql.rowset 自 JDK 1.4 引入,从 JDK 5.0 开始提供了参考实现。它主要包括 CachedRowSet,WebRowSet,FilteredRowSet,JoinRowSet 和 JdbcRowSet。 除了 JdbcRowSet 依然保持着与数据源的连接之外,其余四个都是 Disconnected RowSet。 相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库服务器的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet ...
程序代码: JMSTest.javapackage com.lizongbo.jmsdemo;import javax.jms.MessageListener;import javax.naming.Context;import javax.jms.QueueConnectionFactory;import javax.jms.QueueConnection;import javax.jms.QueueSession;import javax.jms.QueueSender;import javax.jms.QueueReceiver;import javax.jms.Queue;im ...
在通过JDBC对数据库进行并发访问时,为了解决并发之间的锁的控制,JDBC提供了一个隔离级别(Isolation)的方式解决并发访问的问题。     因为最近时间在解决公司工作流在客户现场的高并发情况下经常出现死锁(dead lock)或者事务超时情况,而工作流的应用大多数主要这几种业务:查询工作项、领取工作、完成(或者提交)工作。根据以前公司在其他应用中并没有出现这 些故障,对所上线的环境进行的分析,主要差异是出问题的系统是DB2(其他系统基本上是ORACLE)。针对上面的问题进行了下面分析。   数据库的差异性: ORACLE数据库比较强调能够支持高并发情况下的访问,保证能够“读”到数据 ...
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal ...
Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。如果你现在还没有开始使用Ant,那就要赶快开始学习使用,使自己的开发水平上一个新台阶。  Eclipse中已经集成了Ant,我们可以直接在Eclipse中运行Ant。  以前面建立的Hello工程为例,创建以下目录结构:   新建一个build.xml,放在工程根目录下。build.xml定义了Ant要执行的批处理命令。虽然Ant也可以使用其它文件名,但是遵循标准能更使开发更规范,同时易于与别人交流。  通常,src存放Java源文件,classes存放 ...
/* *auth: lanmh */ /** * 基于CGLib(面向Class)的AOP的简单实现. */ import java.lang.reflect.*;import java.util.*; import net.sf.cglib.proxy.*;import org.apache.commons.logging.Log; public abstract class AOPBaseClass    implements MethodInterceptor{    private static Log logger ...
对于Java组件开发者来说,他们都盼望拥有一组能够对组件开发提供全面测试功能的好用的单元测试。一直以来,与测试独立的Java对象相比,测试传统型J2EE Web组件是一项更为困难的任务,因为Web组件必须运行在某种服务器平台上并且它们还要与基于HTTP的Web交互细节相联系。 易测性(在框架中测试每个组件而不管其具体种类)是Spring框架所提倡的关键原则之一。从这一角度看,Spring是对核心J2EE模型的一个重大改进—在以前情况下,在容器外进行组件测试是很难实现的,而且即使是容器内测试也往往要求复杂的安装过程。 本文正是想集中探讨Spring的易测性特征—它能使得对Web组件进行单元测 ...
本文介绍如何利用Eclipse插件Spring IDE在Eclipse中的使用。   Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境。   问题提出:   在采用Spring框架进行系统开发时,Bean的配置文件XM ...
Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。 Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用, PlatfromTransaction ...
spring已经提供了声明式的事务管理模型,这主要借用了基于ioc容器实现的aop编程框架,利用类似拦截器的方式将定义需要进行事务处理的bean方法进行代理封装. 当然其核心部分还在于其自身实现的事务管理,因此这里就从编程式的事务管理开始讲起. 首先,对于事务的定义可以通过TransactionDefinition接口的实现来进行描述,当然spring已经提供了最常用的DefaultTransactionDefinition实现.这个设计的思想又不禁让人想起了ioc容器中用到的BeanDefinition以及其默认实现DefaultBeanDefinition.这样设计的主要目的在于将定义的描述 ...
AOP正在成为软件开发的下一个圣杯。使用AOP,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。AOP可以防止代码混乱。 为了理解AOP如何做到这点,考虑一下记日志的工作。日志本身不太可能是你开发的主程序的主要任务。如果能将“不可见的”、通用的日志代码注入主程序中,那该多好啊。AOP可以帮助你做到。 Spring framework是很有前途的AOP技术。作为一种非侵略性的,轻型的AOP framework,你无需使用预编译器或其他的元标签,便可以在Java程序中使用它。这意味着开发团队里只需一人要对付AOP framework,其他人还是象往常 ...
最近遇到一个需求,是要对一个类增加一些新的功能,原则上讲是不改变这个类的代码,不改变这个类的继承关系。以前了解过Decorator模式,所以特意又深入学习一会。 什么时候需要Decorator模式:它的主要功能是不改变类的代码和继承关系,为这个类增加功能。 例如我要计划做一件事情(例如 打印某段文字) Java代码   public class DoWork(){        public void doWork(){            System.out.prinln("Do Work.....");        }    }     public ...
Global site tag (gtag.js) - Google Analytics