`
zyl
  • 浏览: 484144 次
社区版块
存档分类
最新评论
文章列表
    几天前遇到这么一个问题,让我郁闷了半天。当初为了方便定义了以下的一个接口: <pk extends="" serializable=""> </pk> java 代码   public interface IBusinessObject《PK extends Serializable> extends Serializable { ...
不会发图片,还是参见我在blogjava的文章: http://www.blogjava.net/zyl/archive/2007/04/12/jetty2.html
        一直以来使用jetty作为我的web开发配置服务器,开始的时候和所有的初学者一样使用tomcat作为开发服务器,可用着用着,感觉tomcat越来 越繁琐以及庞大。后来,用了jboss,知道jboss使用jetty作为其web应用服务器,所以就开始试着使用jetty。从那开始后,jetty就 成为我的开发配置服务器了,从最初的4.0,到现在的6.0一直在使用着。    喜欢jetty的原因,在于其的方便,简单的配置文件,简单的启动脚本,而且在elipse或者其他ide中,进行调试,运行都很方便。    不想多说什么,让事实来说话吧。在开始之前,先下载jetty。目前最新的版本 ...
    web 开发很多年了,从单纯的jsp 到struts,再到webwork,接着就是spring 的mvc。感觉jsp 的封装性,实在不怎么样。于是乎想到了组件化,以前的时候用过echo,现在是echo2,不可否认,echo的设计结构比较的不错,完全的面向对象化开 发,也没有了那些令人讨厌的jsp。不过实在受不了的就是echo的速度,echo2据说已经大幅改进,而且完全的实现了ajax。不过echo2毕竟受 关注度不是很广,还是决定放弃使用。        于是就开始接触jsf,经过一段时间的接触,基本上了解了其中的结构,总的感觉来说,有点失望。不过作为jsr标准,还是可以期待使用,毕竟 ...
欠了很久的文章,本来都不想发了,可还是发吧 ehcache的默认配置文件名为ehcache.xml,也可以自己指定。配置文件比较的简单,基本上也就是常用的几个元素。 配置元素说明: diskStore:配置DiskStore,当需要使用磁盘保存的时候,需要对象实现序列化接口     属性:path 配置文件存储位置,如user.home,user.dir,java.io.tmpdir cacheManagerEventListenerFactory :指定CacheManagerEventListenerFactory,用于创建CacheManagerPeerProvider 用于提 ...
    一直以来懒得配置缓存,基本的缓存也就是orm层,基本上都交给hibernate去配置了。这段时间,感觉页面速度太慢了,还是需要使用缓存。现在的缓存工具也挺多的,较不错的属ehcache和oscache了。决定分别研究一下。     先来说说ehcache,目前的版本为1.2,已经支持集群了。对于ehcache的使用,感觉很容易上手,基本上都是配置。以前在hibernate的时候配置过,所以也不是很陌生。API也挺简单,如下的api:     CacheManager主要的缓存管理类,一般一个应用为一个实例,如下     CacheManager.create();也可以使用new Ca ...
    jibx又一个不错的xml绑定工具,随着这段时间的使用,感觉越来越随心应手了。和jaxb一样,都是属于xml绑定工具。不同于jaxb,jibx使用java字节码enhance技术,而jaxb更多在于源代码生成技术。jibx的工作主要在于前期,也就是进行字节码绑定,这一部分基本上都是在编译器完成的。在运行期,不需要任何的配置,由于字节码已经嵌入java类中。而jaxb更多在于运行期绑定,通过元数据或者xsd文件进行解析绑定。相对于jaxb来说,jibx更加的快速以及灵活。不过,前期的编译工作还是需要花费一点时间熟悉。下面通过一个简单的例子来说明,例子是其官方自带的。     首先从网上下 ...
    关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令,可以采用javassist。javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。     下面通过一个简单的例子,通过javassist来实现如何动态注入代码。     假设,存在类A,如下: java 代码   public class A {       public void method() {           ...
    在java中,类装载异常虽然不是很常见,可如果发生异常,其处理还是比较麻烦的。     下面的几种异常是比较常见的: ClassNotFoundException     ClassNotFoundException 是最常见的类装入异常类型。它发生在装入阶段。Java 规范对 ClassNotFoundException 的描述是这样的:     当应用程序试图通过类的字符串名称,使用以下三种方法装入类,但却找不到指定名称的类定义时抛出该异常。     * 类 Class 中的 forName() 方法。     * 类 ClassLoader 中的 findSystemClass() ...
    使用maven2的另外一个好处,就是有了统一的入口,用于察看项目的进展情况。这主要包括了项目的介绍,成员介绍,以及相关的项目的文档,当然也包括项目的所有进展报表。     下面,通过实例来介绍如何配置maven,来产生项目站点。     首先创建相关的site mvn archetype:create \       -DarchetypeGroupId=org.apache.maven.archetypes \       -DarchetypeArtifactId=maven-archetype-site \       -DgroupId=com.mycompany.app \ ...
    这几天,看了jpa(java 持久性 api)的规范,作为ejb3的重要组成部分,jpa 还是值得关注的。看完规范,感觉jpa还是比较的单一的,其目标就是实现java 持久性的通用。jpa采用纯pojo的方式实现,更多的是采用java 5注释。jpa 的优势是多供应商的支持,可以运行在容器之中,也可以运行于容器之外,这就是其优点。     hibernate 从3.2开始,就开始兼容jpa。同样,jdo,也开始兼容jpa。在orm的领域中,看来jpa已经是王道,规范就是规范。在各大厂商的支持下,jpa的使用开始变得广泛。     在spring 2.0.1中,正式提供对jpa的支持, ...
    hibernate 的强大在于完全的对象化,对于对象之间的关系解决的比较好,如1对1,1对多,多对1,以及多对多。当然也包括继承关系。     而ibatis这方面就比较逊色了,不过对于也支持简单的关连查询,如1对1,和1对多。对于一般的情况来说,这两种已经足够了,当然不能层叠更新是一个缺陷,看了半天文档,也没有找到对象之间的层叠更新,估计是不支持。     以前的版本ibatis处理关连是通过执行两次sql来实现的,如下的实例:     一对多关联: xml 代码       <sqlMap namespace="User">   ...
    这几天仔细看了一下ibatis的文档,发现2.2后,ibatis的改变还是挺大的。对于自定义类型支持的也不错,这样对于blob和clob数据的处理也就简单多了。     不过在spring 中已经提供了很好的实现,所以这又省去了很多的功夫,接下来看看ibatis是如何支持clob和blob的。     ibatis提供了TypeHandler接口,用于处理数据类型,基本的实现类为BaseTypeHandler     在spring 中,提供了AbstractLobTypeHandler作为基础类,并且提供了相应的模版方法,所有的工作由LobHandler处理。     BlobByt ...
    用了很久hibernate ,突然想换个别的orm 工具,当然在orm领域中,hibernate是老大。看了一下ibatis,发现如果对于crud操作不是很多的系统来说,是个不错的选择,尤其是适合 那些对sql和性能热衷的开发者。综合来说ibatis不能算orm工具,只能算个半成品。不过比起直接用jdbc写,那还是方便多了。主要的好处是分离 了sql和代码,如果你想追求性能,那么sql是你很好的利器,当然ibatis的缓存也不错。比起hibernate,ibatis就简单多了,估计也 就3天能够基本掌握了,这大大减少了学习成本。     说了那么多废话,下面开始正题,通过一个简单的实例开 ...
    对于团队来说,建立统一的开发环境是必须的,而maven能很好帮助建立统一的环境。下面就介绍如何更有效的进行统一的配置。 准备工作:    下载必须的软件: maven2: http://maven.apache.org/download.html 最主要的 maven-proxy:用来代理repository,使用代理来访问多个远程库             http://maven-proxy.codehaus.org/ continuum:一个不错的持续整合工具,用于自动build。支持ant,maven http://maven.apache.org/continuum/ svn: ...
Global site tag (gtag.js) - Google Analytics