人人都说struts+spring+hibernate是J2EE开发的三剑客,是精品,找了很久找不到理由,后来用逆向思维,假设它们是垃圾,一下子就找出了N多的理由。 1. 一个简单的WEB应用要用到三个臃肿的框架,下载的时间比开发的时间长 2. 每个框架都有个哆嗦的XML文件要配,作为一个程序员,我始终坚持认为改代码比改配置文件容易 3. 要拷贝的支持类库太多,占到我项目文件夹总大小的90%以上 4. 基本上都要安装eclipse插件,否则开发就是一场噩梦 5. Struts的action必须要在XML里面配置了才能访问,而且只能在根目录下 6. Action居然不能直接输出HTML页面,必须要转到某个actionforward里面 7. ActionForm的代码跟VO的代码严重重复,浪费了宝贵的时间,增加了维护的工作量 8. 生成的代码文件太多,居然有很多代码生成工具,帮助生成了更多的代码垃圾 9. 一个简单的存数据操作,需要从JSP到ActionForm再到Action再到Service再到DAO接口再到DAO实现再到Action再到JSP页面,七拐八绕搞得人头晕。 10. 七拐八绕倒也罢了,关键是里面要走N多的XML配置,拐到最后都看不出来拐到哪去了 11. 三个框架各自为政,各扫门前雪,丢下一堆接口给其他框架,苦了用框架的程序员 12. 三个框架没有哪个告诉程序员如何从头到尾实现一个WEB应用。 13. Spring除了把对象的初始化搞到了配置文件里之外没任何用处 14. 本来只要new一下就创建了一个对象,现在要到spring的XML里面去配,敲错字符都不知道 15. Hibernate的所谓的HQL语言不伦不类,复杂得让人无法下手,跟简洁好用的SQL相比简直天壤之别 16. Hibernate执行一个简单的查询都要走好几个SQL语句,慢到可以去泡一杯咖啡。 17. 。。。
一种工具好与不好,主要方面应该体现在是否实用,是否易用,好多人说hibernate怎么怎么好用,是,这个不能否定,毕竟hibernate都出了这么多年了,该优化的早优化了,但是,正如有人说的,hibernate慢,而且难优化,而且使用不好有问题,这就是他最大的垃圾地方,楼主可以想一想,hibernate提出的什么面向对象操作数据库,这本身就是一个谎言,oracle,db2这些主流数据库本省就是关系数据库,为什么非要用面向对象思维去考虑他,弄不好就容易让人思维错乱。不是谁没有那个思维,也不是谁不懂那个东西,二是学会hibernate,要想学好,跟另学一门语言的难度没什么区别,他只是一个工具,这么难,有意义吗?我以前没用过其他的orm框架,也觉着hibernate好,但是当你用过好的简单的、容易上手的框架,如ibatis,你就会发现hibernate就是绕弯子走路,脱裤子放屁,真没啥用~~