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

Struts2, Spring 和 Hibernate 的理解之我谈

某人提出的问题:
大家好,我是应届毕业生,我在找工作时候,面试官问我:用自己的话分别谈谈对 struts2,spring,Hibernate的理解,我应该怎么说啊?求高人指点。(不要那些官方语言)


我的回答:
Struts2 是基于 Filter 进行跳转控制的工具,封装了从不同请求路径到不同程序的分发过程。我个人觉得这种分发应该根据系统的预期复杂程度来决定是否使用。毕竟,基于反射的框架工具,都会带来执行速度的缓慢。这意味着同样规模的用户,服务器需要消耗 避免反射型框架十倍以上的内存。
  对于页面跳转,我个人认为应该将软件结构设计成网络传输与数据功能分开的模式。这种模式意味着,同一种网络请求,就对应某一个程序程序。由这些和访问直接对应的程序方法来进行各种功能的组合调用。这么做是因为,在实际系统中,这种组合而来的功能流程,对于一个系统来说,是几乎不会临时改变的。就算能够改变,也不方便通过让实施人员调整配置文件来达成这种变化。
  另外,如果网络和客户端(运行 JavaScript 的浏览器本身也可以理解为一种客户端)的数据交互,如果能够提纯,也就能在一定程度上解决对复杂跳转控制的依赖,从而不使用 Struts 及类似产品。具体 单页面应用的有关内容,有机会再说吧。

Spring 主要的功能是对象依赖关系的注入,以及方法执行前、后的监视(切片)。在实现途径上,通过 Spring 执行的每一个方法,都不是直接执行,而是通过代理程序的方式。这严重损害了服务器性能。
  还是刚才的观点,我认为软件结构的设计,可以避免很多系统曾经出现的问题,比如依赖层次过多造成人工控制困难,等。
  通过 Spring 进行切片是一个具备很高开发效率的方式。不过因为性能严重低下,所以内网系统可以考虑。公网系统,则应该通过可配置的模块化功能执行流程,来避免代码重复编写。

Hiber
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值