当前位置:首页>开发>正文

Struts1和Spring还有Hibernate的整合的原理 struts hibernate spring的运行原理

2023-04-20 02:43:18 互联网 未知 开发

 Struts1和Spring还有Hibernate的整合的原理 struts hibernate spring的运行原理

Struts1和Spring还有Hibernate的整合的原理

应用程序服务器(tomcat)启动的时候 加载web.xml里面关于框架的配置文件
struts1 配置了action的path。为Action访问路径
parameter="dispatch">
在action里面 可以通过spring注入service

再由service调用dao层

DAO层数据处理交由ORM框架 Hibernate处理。

struts hibernate spring的运行原理

绍Struts的原理,但是大概介绍一下还是有必要的。Struts本身就是 MVC 在这里负责将用户数据传人业务层,以及 将业务层处理的结果返回给用户,此系统属于较简单WEB应用,采用了OpenSessionInView模式处理LazyLoad问题,这样我们可以在用户视图中使用 get,set方法来方便地获取关联对象。为了处理庞大的Action和ActionForm问题,在此我门准备使用DynaActionForm (DynaValidatorForm)和DispatchAction以及 动态验证框架 来解决。及使用Tile来解决框架问题 。使用自定义标签处理分页和身份验证问题。

2 Spring

Spring Framework最得以出名的是与Hibernate的无缝链接,虽然Spring 对Hibernate提供了90%以上的封装,使我们不必去关心Session 的建立,关闭,以及事务使我们能够专心的关注业务逻辑。但是一些特殊情况如 有时需要Query以及Criteria 对象,分页等,Spring不能给我们提供支持,总不能每次都在你的DAO上写个HibernateCallBackup()吧?Spring的作用不是把Hibernate再封装一层,而是让你接触不到Hibernate的API,而是帮助你管理好Session和Transaction。

在这里解决方法是:首先 写一个IBase 的接口,和一个BaseDao的实现。在实现中仿照HibernateTemplate,将其功能一一实现,同时考虑到Spring 未能支持的地方,我们不得已只好自己来管理Session,因此加入public Session openSession(),public Query getQuery(String sql),public Criteria getCriteria(Class clazz),以及分页的方法。 然后为每一个Entity 都建立继承于以上类的IEntity,与EntityDao。这里可以根据需求对Entity加入特殊的方法实现,如 在 StudentsDao.java 中加入类似用户身份验证等。以上就是数据访问层。接下来在Service层中通过对dao的引用完成业务逻辑方法。在下面的例子中我们分别为学生模块,教师模块,管理员模块构建Service层,StudentsServiceImpl,TeachersServiceImpl,AdminServiceImpl。

3 Hibernate

有了Spring的封装,我们要对Hibernate做的就是正确实现对象关系的映射。由于此处处于系统的最底层,准确无误的实现对象之间的关联关系映射将起着至关重要的作用。

总之,理解了Struts,Spring,Hibernate地原理以及之间的关系之后,剩下的工作就如同在以Spring为核心的Struts为表现的框架中堆积木。

struts2 spring hibernate是如何整合的



搭建普通的SSH框架
================================================
1 拷贝struts2的jar包
2 配置web.xml
3 写JSP页面
4 写action
5 配置struts2.xml
6 引入spring的jar包!要把struts2-spriong-plugin.jar也引入
7 修改web.xml
8 配置spring.xml
9(1)修改WebRootpagesUser为 user;
因为spring中的bean 的id配置的是

(2)并且JSP页面的提交action也改成
10(1)增加hibernate部分的jar包
(2)增添 pojo
3)增加 User.hbm.xml

11 增加hibernate的配置文件 hibernate.cfg.xml
12 在spring的配置文件applicationContext.xml 中增加hibernate部分的配置
13 启动测试!
如果数据库中陈宫创建表,则表示配置成功

================================================
14 增加service 和 dao

15 在action中调用service, 增加和修改如下内容
16 在spring的配置文件中增加 配置

以上就是最基本的框架了

HIbernate 的工作原理是什么?

关于hibernte的工作原理,简单说一下个人浅见:
1.配置好hibernate的配置文件和与类对应的配置文件后,启动服务器
2.服务器通过实例化Configeration对象,读取hibernate.cfg.xml文件的配置内容,并根据相关的需求建好表或者和表建立好映射关系
3.通过实例化的Configeration对象就可以建立sessionFactory实例,进一步,通过sessionFactory实例可以创建session对象
4.得到session之后,便可以对数据库进行增删改查操作了,除了比较复杂的全文搜索外,简单的操作都可以通过hibernate封装好的session内置方法来实现
5.此外,还可以通过事物管理,表的关联来实现较为复杂的数据库设计
优点:hibernate相当于java类和数据库表之间沟通的桥梁,通过这座桥我们就可以做很多事情了

Spring是如何整和Struts和Hibernate的?

刚开始学习Spring没几天,由于急用,在整和Hibernate时遇到一些问题,代码反复看过n遍,No Problem!但就是启动服务器报错,还提示偶映射文件有问题!害惨偶啦!!!

最后,索性重新建了个工程,又把Spring dist目录下的3个包,和lib下的所有包(排除jakarta-commons/commons-attributes-compiler.jar、 j2ee/servlet-api.jar、j2ee/jsp-api.jar)加了一边,此时没有再加Hibernate3.2中的包了,就没有问题了!

现在要赶快进入下一步,整和Struts1.3.5! 经验:在eclipse中开发,有些包还是不能加的啊!

首先,Spring2.0.6中包含的Struts版本较老(可能是1.2.9),所以要替换掉它啦!找来相应的包,如下几个

添加 到工程的lib目录下,加入到java build path中,现在包的问题我的是已经解决了!再要考虑如何加载Spring,Struts的配置文件了!

Struts配置文件加载方法: 在web.xml中添加,
actionServlet org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml debug 2 detail 2

actionServlet *.do

Spring配置文件XXXContext.xml加载方法1: 在web.xml中添加如下内容,多个spring的配置文件,逗号分开!
contextConfigLocation /WEB-INF/applicationContext.xml,/WEB-INF/dao-context.xml,/WEB-INF/action-context.xml

org.springframework.web.context.ContextLoaderListener

加载方法2: 在Sturts-config.xml中加入如下代码
value="/WEB-INF/applicationContext.xml,/WEB-INF/dao-context.xml,/WEB-INF/action-context.xml"/>

Spring IoC容器要对Struts的Action进行管理,ok!也就是Struts的ActionServlet捕获到*.do,转到Spring来处理用户请求,需要Sturts-config.xml中加入
processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/> Struts的配置和以前一样,但可以不用加type属性.Spring的dao-context.xml来接受用户的action, 此处的name="/user/login"必须和Struts的path对应起来,而不是id属性.这样就实现了Spring对Action的管理,也就是整和了Struts1.3.5! 注:开发环境,Eclipse3.2,Hibernate3.2,Struts1.3.5,Spring2.0.3,有些包需要自己加,这点要特别注意!具体的代码就不加了,框架大概是这样的! 下一步是要整和Struts2.0.6,老师要用的!配置时像WebWork2,但我还没用过,还要加油啊!!!!

spring hibernate struts 是怎样整合,代码我会,就是其中的原理不知道

struts 和spring的整合主要是Action方面 没什么原理。就是为了实现 spring的实现 一切类由 spring帮你new,struts配置文件class改成bean的id名.为什么这样做就是为了方便 很多实现spring都帮我做了。
hibernate 核spring的整合 也没什么.hibernate的配置可以在spring里面做, 一些难题也比较好解决了(比如:事务....)
你问其中原理太泛了.... 我理解整合就是为了让3个框架能融合流通起来(使用框架已经封装好的功能来帮我们更好的做好项目)。

请简述关于hibernate,struts2 ,spring,这3个框架的执行原理

struts2 是控制业务逻辑,典型的MVC设计模式。
hibernate 做持久化的,也就是存取东西的。
spring 面向切面编程,依赖注入和ioc,可以理解为在哪里,加什么。也是MVC设计模式,不过光用spring一个也是可以的,有springmvc,springdata等。

struts2、hibernate、spring的工作原理,简单点。。。

hibernate 把数据库中的数据与javabean中数据时刻保持一致
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,用来整合
struts是表现层框架,差不多就是界面设计

最新文章