当前位置:首页>正文

Hibernate,Struts和Spring有什么区别 spring hibernate struts2 应用方面

2023-05-05 02:52:41 互联网 未知

Hibernate,Struts和Spring有什么区别?

MVC是一种思想,对于WEB开发都有这种思想。JAVAEE中有分层的概念(这个只有JAVA中有) 就是三成结构:表现层 业务层 持久层 Struts对应的就是表现层的技术Spring对应的就是业务层的技术Hibernate对应的就是持久层的技术

spring hibernate struts2 应用方面

spring是用来总体控制你的业务bean的一个核心容器。以依赖注入的方式对你的业务bean进行集中管理。
以它内置的aop对你的事务进行集中管理。而且还可以保证单例。它贯穿于整个项目之中。
struts2基于servlet的mvc架构。将原来的jsp servlet变成了视图(jsp) model(实体) 控制器(action),以多例的方式由action去处理你的请求。保证每一个请求都有一个action。
hibernate,持久层的or-mapping映射框架。可以帮助用户跨数据库平台,但用的不多。主要是将实体与数据库表做一一的关联。然后使程序员更好的以面向对象的方式去操纵数据库。

struts spring hibernate的工作流程

struts负责web view层的工作 用户所需要的操作服务
hibernate 负责数据的持久化 简单理解是去执行数据库操作
spring 管理struts,hibernate 调度他们两来工作

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

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

Hibernate,Spring,Struts三者之间的联系。

Hibernate 做为之久层框架封装了对数据库的连接
Struts2 会依据web.xml、struts2.xml配置文件形成对整个流程的控制最终实现跳转页面
Spring 整合了Hibernate与Struts2实现了代码的完全的解耦,使3大框架完美结合,降低了组件与组件之间的关联、改善程序结构、便于系统的维护与扩展.当然Spring还可以整合其他的的框架

SSH的流程可以大致理解为:
请求到达前端控制器,前端控制器根据struts2.xml配置文件建立请求与action之间的对应关系、Spring容器实例在服务器启动时由web.xml中定义的Spring监听器创建、创建之后会实现各组件之间的注入关系、最终将Service注入到action中,action根据输入算输出然后决定转到哪个页面。

struts Spring hibernate简单流程

SSH框架都是取其优点的, 个人理解: Hibernian 的最大好处就是根据数据库的表反向生成实体类,并且还有关系在里面,还有就是它的对数据的操作也很方便。 Spring 我理解的就是程序员的春天,省去了在类里面new 对象的过程,把这个调用与被调用的关系直接展示到了配置文件里,做任何操作都变简单了。 我就这么跟你说吧, 程序框架搭好,各种jar包导好后,开工了 就拿注册功能来说 页面只有两个文本框 一个用户名(uname) 一个密码(pwd) 首先是action层: 它是负责在页面和程序之间传输数据的,还有作用是做页面跳转。页面由用户填写表单数据,点击提交按钮,页面的表单数据由Hibernian自动封装到该页面表单所对应的ActionFrom(ActionFrom跟实体类不是一个东西,ActionFrom是页面有什么值,我类里就写什么属性,是封装表单数据用的。而实体类是完全按照数据库的字段生成的,实体类可以当做ActionFrom用,但ActionFrom绝对不可以当做实体类用),这样表单数据就以ActionFrom对象的形式在Action的点击提交按钮执行的那个方法里存在了,这个时候你需要的就是把表单数据存入数据库中,但如果数据库里并非只有页面上的uname和pwd两个字段,还有其他字段比如用户状态,那你就需要另行在程序里给该属性赋值了,否则会报非空错误,这里的例子,页面只有两个文本框,数据库也只有这两个字段,就不必考虑那么多了,到这一步,action的功能告一段落了,接着是把数据传入BIZ层。 Biz层(业务逻辑层): 它负责的是对数据的处理,比如网站功能是点卡销售,你就需要在这个层里对点卡的打折啊其他的数学问题做操作了,在这个例子里,此层只做单纯的数据传递作用,而后又到了DAO层。 Dao层(数据库操作层): 它负责对数据向数据库增删改查的操作,不多解释了。 以上例子,不使用spring的话,每个层之间的数据传递你都需要new一个调用该层数据的类的实例,而使用了spring的话,你需要做的就是把Dao层和Biz层的每个类都写一个接口类,接口类里写实现类的方法,在调用的时候不new 对象,直接用对象点(.)方法就可以,别忘了对每个对象加上set/get方法。 Biz层例子 private saveMyScheduleDaoImpl smsDI //类里定义写接口(saveMyScheduleDaoImpl ),不要写实现类,并且不new set/get方法略········· public List saveMySchedule(Schedule s) { return smsDI.saveMySchedule(s) //因为是接口的实例,所以要求该接口里必须写上实现类的所有方法,这样才能点(.) } 这里只简单写了一个BIZ层的。 以上流程只是从页面获取值存入数据库,是单向的Action层->Bzi层->Dao层的数据传递,Dao层->Biz层->Action层的数据传递和我刚刚将的一样,就是反过来了。 到这一步的总结: Dao层写接口并且接口里写实现类的所有方法。 Biz层写接口并且接口里写实现类的所有方法。调用Dao层方法只定义Dao层需要调用方法所属的类的接口,而后添加get/set方法,再用该接口的没有new的实例点(.)方法。 Action层同Biz层。 下面就是强大的spring的工作了-------依赖注入 所有改写的死东西都写完了,我们就差在配置文件里依赖注入了 找到spring的配置文件,先注Dao层,这个时候一定要注意一点,就是依赖注入的时候注的必须是实体类!! 而不是接口!! 这是一种良好的变成习惯。 Dao层的依赖注入里绑定的是你在往工程加Spring的时候让你填写SessionFactory的那个值,配置文件上面应该会有这个bean的。 然后是Biz层的依赖注入,同样也是注实体类,根据我这个例子里面会有smsDI需要绑定,这个时候填写你注的Dao层的相对应的类的名字就行。 然后是Action层的依赖注入,大体同Biz层一样。 依赖注入完毕后,你就可以尽情的去嗨配了。

spring hibernate struts ajax问题

spring 、hibernate 、struts都是中间件框架。spring 是Bean框架,用IOC容器来管理Java的生命周期,它的出现就是为了代替EJB。Hibernate是持久层框架,它对JDBC的封装来实现数据持久,可以来解决复杂的关系。Struts是Action框架,用来控制页面的转发。Ajax是页面层的,它用来解决页面相应慢的问题。

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为表现的框架中堆积木。

相关文章