天天看點

webwork2+spring+hibernate入門完全配置指南(1)(原創)

webwork是個優秀的開源架構,特别是其攔截器機制,我認為是整個系統最大的亮點,可在其上面做大量文章

我的開發環境為Eclipse3.0.1+lomoz,資料庫我用的是MySQL4.0.12,當然,也用到了mysqlcc,伺服器我用的是tomcat4.0.3和tomcat4.1

請先下載下傳webwork.,spring.,hibernate,并把JAR檔案放到web-inf的lib目錄裡面。同時,請下載下傳http://unc.dl.sourceforge.net/sourceforge/aopalliance/aopalliance.zip ,将aopalliance.jar放到lib目錄裡面。

還有webwork2-spring.jar,以及mysql的驅動都要下載下傳并放到lib裡面,缺一不可

然後是配置log4j,如果沒有正确配置log,TOMCAT将不能正常釋出你的項目。配置log4j很簡單,

在web-inf/classes下建立一個log4j.properties的檔案,内容如下

log4j.rootLogger=INFO, A1 , R

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=d:/Tomcat 4.1/webapps/demo/logs/log4j.log

log4j.appender.R.MaxFileSize=100KB

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

其中log4j.appender.R.File這一項請按照你TOMCAT的安裝位置進行修改,關于log4j的詳細内容,推薦大家看Hilton的學習筆記以及IBM網站上的相關文章.

好了,開始我們的webwork之旅了。首先是配置web.xml檔案

<?xml version="1.0" ?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->

<web-app>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<listener>

<listener-class>com.atlassian.xwork.ext.ResolverSetupServletContextListener</listener-class>

</listener>

<servlet>

<servlet-name>webwork</servlet-name>

<servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>webwork</servlet-name>

<url-pattern>*.action</url-pattern>

</servlet-mapping>

<taglib>

<taglib-uri>webwork</taglib-uri>

<taglib-location>/WEB-INF/webwork.tld</taglib-location>

</taglib>

</web-app>

我們配置了兩個監聽器,還有一個servlet,這個servlet負責action的轉發工作,關于action的詳細工作原理,大家可以參看xwork的源代碼

在接下來配置之前,我想大概說一下我想實作的功能,就是簡單的往mysql的一個表中插入一些資料

首先我用Middlegen-Hibernate和hibernate-extensions(我沒用eclipse的hibernate插件,我喜歡用這兩樣工具來生成)生成了表對應的hbm.xml檔案和兩個JAVA類,表的字段是"tablename,fieldname,chinesename", 表名是

"systable",其中tablename,fieldname做雙主鍵,這樣,生成出來的類應該是兩個,一個PK主鍵類和主類本身,我把他們加入到了我的項目中.

然後我做了一個接口類

package com.cz.struct;

public interface SystableDAO {

public abstract void insert(Systable data);

}

然後是實作類

package com.cz.struct;

import net.sf.*;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;

public class SysTableDAOImp extends HibernateDaoSupport implements

SystableDAO{

public void insert(Systable data)

{

this.getHibernateTemplate().save(data);

}

}

為什麼要用接口類?因為spring會用到JAVA的動态代理,關于這部分,大家可以看xiaxin的spring指南

在insert 方法中,我直接調用了spring提供的hibernate模闆方法,真是友善呀

作者Blog:http://blog.csdn.net/tijichen/