`
Surmounting
  • 浏览: 67932 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

刚有人问面试题咋答,一时兴起回了下,关于对 Struts2, Spring 和 Hibernate 的理解

阅读更多

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

分享到:
评论
2 楼 Surmounting 2012-11-03  
de6566088 写道
看到楼主的回答,感觉楼主对SSH存在相当大的一种不屑情绪,刚开始读的时候这哪是是在回答面试题目,明显是在抢人。后来看了看楼主的整体文章,发现楼主是个喜欢专研调优的人么。其实框架这东西并不是说常用就是一定是完美的,而是一种适合,这些框架其实就是一个基础性的东西,每个公司的架构师都是要根据情况要对其进行调优改进的,而且还要考虑到手下人员的接受能力和上手速度,这是个综合因素,并不是唯有效率快就好。面试的目的每个面试官不同,想要的答案也不唯一,还是那么说合适的才是最好的。


我其实都没想到这个话题能在论坛那边造成讨论。我原来只是不想我写的字流失掉……
http://www.iteye.com/topic/1127474
已经讨论了很多了。确实,对于计算资源冗余的系统,运行速度不重要。
1 楼 de6566088 2012-10-31  
看到楼主的回答,感觉楼主对SSH存在相当大的一种不屑情绪,刚开始读的时候这哪是是在回答面试题目,明显是在抢人。后来看了看楼主的整体文章,发现楼主是个喜欢专研调优的人么。其实框架这东西并不是说常用就是一定是完美的,而是一种适合,这些框架其实就是一个基础性的东西,每个公司的架构师都是要根据情况要对其进行调优改进的,而且还要考虑到手下人员的接受能力和上手速度,这是个综合因素,并不是唯有效率快就好。面试的目的每个面试官不同,想要的答案也不唯一,还是那么说合适的才是最好的。

相关推荐

    Struts,Spring,Hibernate三大框架的面试&笔试题

    【Struts】 Struts是基于MVC设计模式的开源Web应用框架,主要分为Struts1和...这些知识点在面试和笔试中非常重要,它们涵盖了Java企业级开发的关键技术和框架,理解并能熟练应用这些知识将对开发者的职业发展大有裨益。

    最新Struts和Hibernate和Spring经典面试题

    Struts、Hibernate 和 Spring 经典面试题 以下是对 Struts、Hibernate 和 Spring 的经典面试题的总结,涵盖了这些框架的工作机制、优点、缓存机制、查询方式、优化方法等知识点。 Hibernate 1. Hibernate 工作...

    SSH(struts+spring+hibernate)面试题总结

    SSH,即Struts、Spring和Hibernate,是Java开发中常用的一种技术栈,主要用于构建企业级应用。这三种框架分别在MVC模式中的表现层、业务层和服务层起到关键作用。以下是对SSH面试题中涉及的一些核心知识点的详细解释...

    关于Struts.Spring和Hibernate的面试题

    一些关于Struts.Spring和Hibernate的经典面试题

    spring、Struts2、hibernate常见面试题

    本文将详细解释 Spring、Struts2、Hibernate 面试题中的知识点,涵盖了 MVC 模式、Struts1.2 和 Struts2.0 的区别、单例模式、Servlet 依赖、可测试性、项目中使用 SSH 的原因、Struts 和 Spring 的继承关系、实现...

    spring struts hibernate面试题

    【Spring Struts Hibernate面试题详解】 在面试中,关于SSH(Spring、Struts、Hibernate)的知识点通常是Java Web开发人员必须掌握的核心内容。下面将详细解释这些技术的关键特性和应用场景。 1. **MVC设计模式** ...

    struts+spring+hibernate面试题

    在Java Web开发中,Struts、Spring和Hibernate是最常见的三大框架,它们...以上就是关于Struts、Spring和Hibernate面试题的详细解析,涵盖了这三大框架的关键概念和使用技巧,对于理解和解答相关面试问题非常有帮助。

    struts2、spring、hibernate面试题集

    在IT行业中,尤其是在Java Web开发领域,Spring、Hibernate和Struts2是三大核心框架,它们在构建企业级应用中起着至关重要的作用。这三者合称为SSH(Spring、Struts2、Hibernate),是Java EE开发的经典组合。下面将...

    Struts2+hibernate+spring的常见面试题

    Struts2是一个基于Java的开源框架,用于构建Web应用程序。它是Apache Struts1的升级版本,具有更高的灵活性、易用性和可扩展性。Struts2是建立在OpenSymphony的WebWork框架基础之上,它的核心组件包括Action、...

    struts hibernate spring 面试题大全

    Struts、Hibernate和Spring是...掌握Struts、Hibernate和Spring,不仅能够提升你的Java Web开发能力,也对你的职业生涯有极大的助益。通过深入学习和实践,你可以更好地应对面试中的各种挑战,展现出扎实的技术功底。

    struts2,hibernate,spring,ibatis面试合集

    面试时,除了理解每个框架的基本概念和用法,还需要了解它们之间的协作,如Spring如何整合Struts2和Hibernate,以及iBatis如何与Spring集成。此外,对于性能优化、异常处理、安全性等方面的知识也是面试者需要掌握的...

    Struts+Hibernate+Spring面试题合集及答案常见题目经典精选汇总大全.docx

    这些面试题涵盖了Hibernate、Struts和Spring的主要概念、工作原理和最佳实践,深入理解和掌握这些知识点对于Java开发者来说至关重要。在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些...

    struts,spring,hibernate面试题

    Struts、Spring、Hibernate是Java开发中常用的三大框架,它们分别负责不同的职责。Struts作为MVC模式的实现,主要用于处理Web应用中的业务逻辑...面试中,对这些框架的理解和应用经验是评估候选人技术水平的重要指标。

    Struts_Spring_Hibernate面试题总结

    这篇面试题总结主要涉及Servlet的基础知识,包括其生命周期、工作原理以及与Struts、Spring、Hibernate的关系。 1. Servlet生命周期: - 初始化阶段:Servlet容器在接收到web应用部署描述符(web.xml)中的`...

    SSH(Struts,Spring,Hibernate)笔试题与面试题汇总整理.docx

    SSH(Struts、Spring、Hibernate)笔试题与面试题汇总整理 SSH(Struts、Spring、Hibernate)是 Java EE 开发中常用的三个框架,它们之间可以组合使用,以提高开发效率和系统性能。下面是对 SSH 框架中 Struts2 ...

    Struts,Hibernate,Spring经典面试题收藏

    Struts,Hibernate,Spring是Java企业级开发中三大核心框架,常被用于构建高性能、解耦的J2EE系统。这三大框架各司其职,协同工作以提高软件的可维护性和扩展性。 Struts作为表现层框架,主要负责控制应用程序的...

    Struts Spring Hibernate面试题汇总

    【SSH面试题汇总】主要涉及的是Struts、Spring和Hibernate这三个流行Java EE框架的相关知识,以及MVC设计模式的理解。MVC(Model-View-Controller)模式是软件工程中的一种架构模式,它将应用程序分为三个核心组件:...

    Spring,hibernate,struts的面试笔试题(含答案)

    根据给定文件中的标题、描述、标签以及部分内容,下面将详细阐述Spring、Hibernate与Struts相关的面试笔试知识点。 ### Spring框架的关键概念 1. **IoC容器**:Spring框架的核心特性之一是其提供了依赖注入...

    struts+spring+hibernate面试题.doc

    标题和描述指向的是一个关于Struts、Spring和Hibernate技术栈的面试题集合,这份文档旨在帮助准备面试的软件工程师理解并复习这些关键技术点。以下是基于给定内容的关键知识点的详细阐述: ### 1. Action的线程安全...

Global site tag (gtag.js) - Google Analytics