- 浏览: 487801 次
-
最新评论
-
lizhenlzlz:
对我有用,看过
从一个实例看jaxb的强大 -
Tom.X:
OSGi开源优秀平台JXADF
osgi 入门 -
minglelui:
想问下如果已经安装了Jetty还需要安装JBoss吗?
使用jetty配置 开发web应用 -
xiaoasha:
问下创建项目的时候不需要勾选生成activator的么?
osgi 入门 -
fanfan159357:
nice,必须赞一个
osgi 入门 三 关于类装载机制
文章列表
几天前遇到这么一个问题,让我郁闷了半天。当初为了方便定义了以下的一个接口:
<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: ...