MyException - 我的异常网
当前位置:我的异常网» J2EE » struts、spring、hibernate/ibatis你会删除那个?为

struts、spring、hibernate/ibatis你会删除那个?为什么?解决思路

www.MyException.Cn  网友分享于:2013-02-06  浏览:13次
struts、spring、hibernate/ibatis你会删除那个?为什么?
struts、spring、hibernate/ibatis你会删除那个?为什么?

这是一道面试题,我当时犹豫了一下,说会删除struts。
面试官问为什么,我说去掉struts,可以用servlet来替你它,毕竟action层的作用使用servlet完全可以替代。
  作用:接受客户端的请求,负责分发至相应的action,通过actionForm拿到相应数据,调用相应的service层,负责转向相应的页面。
回答完之后,又想到了,ibatis或者hibernate的作用使用jdbc不是也能替代吗?
  作用:完成一个对象与数据库打交道的过程。也使得开发更具对象化,在某种情况下也提高了生产力,移值性会非常容易,sql语句和代码的分离,使得维护更加容易。
而spring随然说现在还没有一个可行的方案来替代他,但是如果完全不使用它,也不是没有可能。
  作用:声明事务,依赖注入,解耦合,配置客户端访问应用程序的方式是单实例还是多实例。

如果是你,你会删除那个?为什么?

------解决方案--------------------
其实也。这个应该是在hibernate ibatis里面来选,,因为这两个都是orm框架。其作用也差不多。
知道这个之后就简单了。。
其实面试官真正想问你的是,hibernate和ibatis的优缺点。。
你了解他们的优缺点之后,那么就好回答了。。
在什么情况下删除哪个,什么情况下删除另外个。也就是在什么情况下用hibernate,什么情况下用ibatis。

网上很多他们的区别。说得也还可以。。
其实真正的用什么框架是要针对项目而言,所以面试官的意思不是真的要你给他一个准确答案。。但是要说得合情合理。。
------解决方案--------------------
我选ibatis,虽然ibatis上手容易,可以编写更加灵活的SQL语句。
但是,感觉这样会使得开发的工作量非常大。

我们公司从来都是一个人搞定一个项目,
这样的情况下,使用Hibernate3在不使用配置文件(使用Annotation)的情况下,很快就能完成持久层的开发。
而使用ibatis呢?没一个交互过程都要写一个SQL语句,配置文件还有处理映射关系。
最起码,代码量是上去了。
干得多了,就会感觉特别麻烦,有时候总在想,还不如直接JDBC来得快些。
------解决方案--------------------
探讨
晕,大家看清楚题目,是 Hibernate/IBaits
也就是说其中的一个,不是2个都用。

这个问题主要是问,你对 Struts Spring 和 ORM工具,你认为哪个最不重要!

我个人的看法,是struts,因为我一直在用Spring+Hibernate, 可是一直没用 Struts, 理由吗... 我不觉得他能对我的项目带来效率的提升。

------解决方案--------------------
引用楼主 nopain_nogain 的帖子:
struts、spring、hibernate/ibatis你会删除那个?为什么?

这是一道面试题,我当时犹豫了一下,说会删除struts。
面试官问为什么,我说去掉struts,可以用servlet来替你它,毕竟action层的作用使用servlet完全可以替代。
作用:接受客户端的请求,负责分发至相应的action,通过actionForm拿到相应数据,调用相应的service层,负责转向相应的页面。
回答完之后,又想到了,ibatis或者hibernate的作用使用jdbc不是也…

------解决方案--------------------
这个.如果我回答.
我会说struts.
因为如果是struts1的话,大部分的职能只是收集页面数据,以及页面请求的转发.
我会和面试官说,去掉struts,我可以花几个小时写一个struts的雏形,
可以完成struts的80%的核心功能.

不过我觉得这个问题意义不大,使用哪个框架,完全要根据项目的具体情况而定.
最好的题目是面试官给出一个项目的简单的需求,
然后让你选择用哪几个框架.
这样有意义得多

文章评论

什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
代码女神横空出世
代码女神横空出世
我是如何打败拖延症的
我是如何打败拖延症的
中美印日四国程序员比较
中美印日四国程序员比较
那些争议最大的编程观点
那些争议最大的编程观点
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
为什么程序员都是夜猫子
为什么程序员都是夜猫子
总结2014中国互联网十大段子
总结2014中国互联网十大段子
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员和编码员之间的区别
程序员和编码员之间的区别
漫画:程序员的工作
漫画:程序员的工作
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员应该关注的一些事儿
程序员应该关注的一些事儿
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
旅行,写作,编程
旅行,写作,编程
编程语言是女人
编程语言是女人
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
每天工作4小时的程序员
每天工作4小时的程序员
Java程序员必看电影
Java程序员必看电影
我的丈夫是个程序员
我的丈夫是个程序员
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序员必看的十大电影
程序员必看的十大电影
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
鲜为人知的编程真相
鲜为人知的编程真相
一个程序员的时间管理
一个程序员的时间管理
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
10个调试和排错的小建议
10个调试和排错的小建议
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
 程序员的样子
程序员的样子
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
老程序员的下场
老程序员的下场
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有