天天看点

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/