Struts+Spring+Hibernate的一些小结

作者在 2008-01-07 10:08:55 发布以下内容

        前段时间做ssh没有成功,老是找不到action servlet,很郁闷。后来从头把struts,spring,hibernate看了一遍,每一个都写了点简单例子,然后重新用三个框架做了一个简单的例子,成功了。
        有些问题,虽然小,但是不注意的话会导致无法成功运行。首先,我们得确保所有包的版本是否正确。像这次,我用的是Hibernate3的包,但在写一个配置文件时,把Hibernate3写成了Hibernate,少了一个3,运行的时候就是找不到,后来一个一个文件查才查出来。一定要对所有包的版本正确了解。而且Hibernate2和Hibernate3有很大的不同,网上很多2的例子,但是3的不是太多。这点要注意。
        关于这三个框架是如何在一个项目里面搭建起来的。感觉Struts用来做页面,Spring用来管理action和请求处理的分发,而Hibernate当然用来处理数据了。这样做很清晰。而且把Spring和Hibernate一起用,可以用到Spring的其中一个HibernateDaoSupport。有了这个,用Hibernate更为方便了。大多数语句通过HibernateTemplate的find(), save(),saveOrUpdate(),delete()等方法就可以处理好数据了,当然,先要熟悉HQL。还有,通过将Struts的Action交给Spring的DelegatingActionProxy来代管,层次清晰,易于维护。
        举个例子,比如你要写一个简单的处理用户信息的系统,能够查看、添加和删除用户的信息。我们先写一个User类,里面包括了诸如name, age, job等属性。然后,要写一个接口,这个接口里面有处理用户信息的方法,比如查询,添加和删除。我们将这个接口取名为IUserDao(接口一般以I开头)。然后实现这个接口的类可以命名为UserDao,不仅要实现IUser接口,还要继承Spring的HibernateDaoSupport类。在UserDao中,可以调用getHibernateTemplate()方法来得到一个HibernateTemplate,然后这个对象就可以调用Spring已经写好的find, saveOrUpdate等方法来处理数据库的事务,比较方便。
        那么,比如在添加用户这个Action里面应该写些什么?首先,写一个IUserDao对象userDao,然后要写一个setUserDao方法。然后如何设置这个userDao呢?就在Spring的配置文件例如applicationContext.xml里面。这个userDao其实是UserDao类的,因此class应该写UserDao,然后它的property是<ref local=sessionFactory>。然后回到Action,如果是添加用户信息,我们只要写一句userDao.add(user)就行了。要注意的是,在Action里面不要写具体的如何添加用户的代码,这些都应该写在UserDao里面。也就是说,只要写userDao的方法就行了,不要写其他的代码了。
        比较重要的两个配置文件:struts.config.xml, applicationContext.xml。框架的关键内容都在这两个文件里面配置的,如果出现错误一定要仔细检查这两个文件。格式、大小写、顺序等等都是需要特别注意的东西。只要仔细点,一般都能正常运行的。
        就这三个框架来说,应用起来也不是像当初那样麻烦。只要确定好功能,分清各个层次,按照规范写代码,都能够成功的。这样的话印象就更深了。当然,还有很多东西需要学习。每天学一点,日积月累,肯定会大有作为。

默认分类 | 阅读 2802 次
文章评论,共0条
游客请输入验证码