posts - 7,  comments - 58,  trackbacks - 0
struts与hibernate集成开发
最近学习struts与hibernate相关知识,下面是个人对struts与hibernate集成开发的一些见解,写出来跟大家共同讨论、学习,欢迎指教。
 要集成struts与hibernate进行开发,首先应该了解一下struts和hibernate框架各自的工作原理和模式般的开发流程。
首先介绍struts的大概工作流程,下面通过一张struts工作的时序图来说明其工作流程:

Struts工作流程分析:
1)Web服务器启动,初始化ActionServlet,读取struts-config.xml文件配置信息,把这些信息分发到相应的对象中。
2)用户发出请求后,ActionServlet接收到请求,查找与请求匹配的Action映射对象(ActionMapping)对象是否存在,是:将请求以及Actionform对象传递给相应的Action对象。
3)Action调用业务逻辑服务接口,结合ActionForm,对用户的请求做出处理。
4)Action处理完毕返回ActionForward对象给ActionServlet。ActionForward对象包含了转发目标对象,可以是jsp或Action。
5)ActionServlet根据ActionForward对象的指向继续转发请求,重复从第2步进行处理。
至此,我们对struts 的基本工作流程有个整体的认识,但还没提hibernate相关的任何知识,业务逻辑层也只是在第3)点微提一下。

接下来,我们来看下hibernate是怎样工作的?(注:在这不是讨论ORM的实现,只讨论怎让hibernate这ORM中间件工作)
Hibernate是个独立的框架,它不依赖任何的Web Server或Application Server,就是说不需要这些支持。
Hibernate有五个核心接口,分别为Configuratoin, SessionFactory, Session,Query及Criteria。通过这些接口就可以完成hibernate的初始化,对持久化对象进行存取,更新等操作。
下面简要介始一下这些接口。
1、Configuration接口 是Hibernate应用的入口,在开始使用Hibernate的各种功能之前需要先创建Configuration对象。它负责加载Hibernate 应用配置文件,如Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");
2、SessionFactory接口 缓存了Configuration对象所包含的配置信息,能根据映射信息自动生成SQL语句,并提供生成Session对象的方法。
3、Session接口提供一系列持久化的操作。
到此,可以写一小段代码来加看下如何使用hibernate
Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");//配置文件不在此作介绍
SessionFactory sessionFactory = cf.buildSessionFactory();
Session session = sessionFactory.openSession();
session.update();
session.save();等等持久化操作。
至此,简单介绍了hibernate 是怎样工作的,其实我只想让你清楚:“Hibernate是个独立的框架,它不依赖任何的Web Server或Application Server,就是说不需要这些支持。”

那么,我们要回到主题来:如何集成struts与hibernate开发?答案很简单:hibernate和struts本质上是没什么联系的,只要你记住:Hibernate是个独立的框架,它不依赖任何的Web Server或Application Server。用DAO模式把hibernate持久化的操作封装好,供业务逻辑服务类调用就可以。回过头来看struts工作流时序图的解释的第三点:“3)Action调用业务逻辑服务接口,结合ActionForm,对用户的请求做出处理。”,不难得出:
用户请求后,struts负责找到相应的Action对象,Action调用业务逻辑服务接口,业务逻辑服务接口调用DAO接口(这里默认的实现就用hibernate,当然, 还可以有多种对数据库操作的实现)
hibernate充当下面这张图中的"持久层(DAO)"


由于本人对struts及hibernate认识不深,写这篇文章只是抛砖引玉,希望高手们发表意见指正错误,多指教。





posted on 2008-02-29 18:44 Sonny Li 阅读(940) 评论(0)  编辑  收藏 所属分类: 框架相关

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

相册

收藏夹

博客好友

搜索

  •  

最新评论

阅读排行榜

评论排行榜