Struts2, Spring 和 Hibernate 的理解之我谈
某人提出的问题:
大家好,我是应届毕业生,我在找工作时候,面试官问我:用自己的话分别谈谈对 struts2,spring,Hibernate的理解,我应该怎么说啊?求高人指点。(不要那些官方语言)
我的回答:
Struts2 是基于 Filter 进行跳转控制的工具,封装了从不同请求路径到不同程序的分发过程。我个人觉得这种分发应该根据系统的预期复杂程度来决定是否使用。毕竟,基于反射的框架工具,都会带来执行速度的缓慢。这意味着同样规模的用户,服务器需要消耗避免反射型框架
十倍以上的内存。
对于页面跳转,我个人认为应该将软件结构设计成网络传输与数据功能分开的模式。这种模式意味着,同一种网络请求,就对应某一个程序程序。由这些和访问直
接对应的程序方法来进行各种功能的组合调用。这么做是因为,在实际系统中,这种组合而来的功能流程,对于一个系统来说,是几乎不会临时改变的。就算能够改
变,也不方便通过让实施人员调整配置文件来达成这种变化。
另外,如果网络和客户端(运行 JavaScript 的浏览器本身也可以理解为一种客户端)的数据交互,如果能够提纯,也就能在一定程度上解决对复杂跳转控制的依赖,从而不使用 Struts 及类似产品。具体单页面应用
的有关内容,有机会再说吧。
Spring 主要的功能是对象依赖关系的注入,以及方法执行前、后的监视(切片)。在实现途径上,通过 Spring 执行的每一个方法,都不是直接执行,而是通过代理程序的方式。这严重损害了服务器性能。
还是刚才的观点,我认为软件结构的设计,可以避免很多系统曾经出现的问题,比如依赖层次过多造成人工控制困难,等。
通过 Spring 进行切片是一个具备很高开发效率的方式。不过因为性能严重低下,所以内网系统可以考虑。公网系统,则应该通过可配置的模块化功能执行流程,来避免代码重复编写。
Hibernate 是对象-关系转换工具,并且能够在软件层面实现分布式事务
。
不过就像 Spring
一样,其性能也完全无法得到保证。我之前没有研究过分布式事务如何实现。不过考虑到数据安全问题,现实中数据库一般并不会向外网透露。这造成了分布式事务
在绝大多数项目中缺乏实用意义。对象-关系转换,其实也是因为 Java 对于数据处理的僵死,不像现在新语种那样能够轻松往已经存在的对象中添加属性。
可以考虑自定义基于 Map 的数据结构,以简便地和关系型数据库进行对应。这样能够很大程度摆脱对对象-关系转换工具的依赖。
本文也在我的 CSDN 空间发表: http://blog.csdn.net/shanelooli/article/details/8128567
分享到:
相关推荐
SSH(struts+spring+hibernate)面试题总结
struts spring hibernate面试题 struts spring hibernate面试题 struts spring hibernate面试题 struts spring hibernate面试题 struts spring hibernate面试题 struts spring hibernate面试题 struts spring ...
一些关于Struts.Spring和Hibernate的经典面试题
此文档列举了各大公司常考J2EE三大框架(strut2和hibernate和spring)的面试题,加上本人在面试过程中遇到的面试题,总结在一起!希望对大家有所帮助!
spring、Struts2、hibernate常见面试题
1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭...
struts hibernate spring 面试题大全 struts hibernate spring 面试题大全
一些struts,spring,hibernate的面试题以及答案
struts+spring+hibernate面试题
spring struts Hibernate面试题
Hibernate面试题分析 Spring 面试题分析 Struts2面试题分析
struts+spring+hibernate面试题.doc
Apache Struts2的是一个在Java中构建Web应用程序开源框架。 Struts2是基于OpenSymphony的WebWork的框架。它是Struts1的提高,它更加灵活,易于使用和扩展。 Struts2的核心组成部分是Action,拦截器和结果页。 ...
Struts Spring Hibernate面试题总结
SSH面试题,struts,hibernate,Spring面试题 SSH面试题,struts,hibernate,Spring面试题 SSH面试题,struts,hibernate,Spring面试题
这些是我收集的关于,Struts,Hibernate,Spring经典面试题收藏 ,以备不时之需
收集的struts+spring+hibernate面试题.doc
struts2,hibernate,spring,ibatis面试合集
Struts+Hibernate+Spring面试题合集及答案常见题目经典精选汇总大全.docx
spring+hibernate+struts企业面试题(精华)