Appfuse中文教程

现在的Web应用开发人员是幸福的,有如此多的选择,Web层有Sturts2、JSF、Spring MVC、Tapestry等,持久层可以选择Hibernate、iBATIS或者JPA等,还有极为强大的Spring作为粘合剂,完美地运行时自动创 建所需的一切对象(依赖注入)。然而我们这些开发人员也是不幸的,因为要让一切完美的运行有太多太多的配置——XML、Annotation甚至是 Properties文件。当开始一个新项目时,要搭建起一个能正常运行、能真正简化开发、能真正实现模块化开发的Web应用开发骨架太难了,更不用说还 要加入DbUnit等自动测试框架。
Continue reading

maven中文教程——一个简单的应用实例

我突然有个想法,我们使用hibernate search来构建一个全文检索(本文的内容不会重点放在hibernate search,对此感兴趣可以下载本文的代码)。假设我们的数据库中有一些数码相机的数据,对于这些数据的维护采用hibernate,这样我们可以使用hibernate search架设一个全文检索系统,以提供更好的产品检索服务。

心动不如行动,马上动手吧。
Continue reading

maven中文教程——坐标与包依赖管理

maven用“坐标(Coordinate)”这个词来唯一标识一个库文件,所谓“坐标”就是库文件的“主键”(借用一下数据库的概念),而且这个“主键”是个复合组件,包含四个部分:groupId, artifactId, version和packaging,分别对应pom文件中的下面四个结点:

<groupId>com.zhlwish</groupId>   项目开发组织标识
<artifactId>simple</artifactId>  项目标识(一般是项目名称)
<packaging>jar</packaging>       打包类型(可能是jar、war、ear)
<version>1.0-SNAPSHOT</version>  版本(按照apache版本命名规则来命名,一般为“主版本.次版本.增量版本-限定版本号”)

Continue reading

maven中文教程——构建的生命周期

maven的支持者在提及maven的优点的时候总会提到这么一点,那就是maven是有生命周期的,而ant没有,你需要手工的编写target,然后编写每个target中的任务。

其实在我看来这个是纠缠概念,所谓的maven生命周期实际上是构建过程的生命周期。在ant中你需要手动的设定文件夹的结果,告诉ant哪个是源代码文件夹、哪个是测试代码文件夹,哪个是目标文件夹等等,因此对于使用ant每个项目都有不一样的代码。因为maven已经将项目的文件夹结构固定好了,不用程序员再指定,所以就可以将编译、打包、部署等这样一些过程都可以做成自动化的,也就是所谓的maven的生命周期。
Continue reading