论坛首页 Java企业应用论坛

ssh优缺点

浏览 57739 次
锁定老帖子 主题:ssh优缺点
该帖已经被评为良好帖
作者 正文
   发表时间:2009-12-12   最后修改:2009-12-12
withoutme_hw 写道
Hibernate还有一个缺点,面试官提示我说Hibernate有没有什么不能做到,而JDBC可以做到的?
Hibernate不能再运行时动态创建表,JDBC是可以做到的


http://www.iteye.com/topic/197752

不知道我是否理解对意思了

不过这个帖子好像也可以算动态创建了
0 请登录后投票
   发表时间:2009-12-13   最后修改:2009-12-14
SSH优缺点:
优点:
struts: 相对于之前的框架turbine和直接使用servlet,使用配置文件减少了代码的编写量,提高了易用性,以及对url管理的一致性,增加了表单验证、formbean等特性,提高了程序的规范性。还有一个很重要的优点是稳定性高,经过多年的使用,相比于其他的控制层框架,对稳定性高要求高的话,用struts可以保证稳定性。
hibernate:相对于jdbc,以操作对象的方式去操作数据库,程序员可以不用考虑数据库的sql语句的具体形式,直接在对象上操作,对象在数据库上的操作,交给了hibernate API去转换执行。减少了代码量,减轻了程序的耦合度,与数据库无关。可以“一次编写,到处运行”。
spring:令人称赞的是IOC、AOP和数据库事务的自动管理,集成对各种其他框架的良好支持,配置过程中高度动态化,低耦合和低侵入性,在应用中起一个小型容器(contaioner)的作用,可以管理在容器中的框架、servlet、bean,管理他们的生命周期和内存分配,具“一站式架构”的特点。
缺点:
struts:action被设计成线程不安全的,配置文件众多、繁杂,代码和Servlet的耦合度比较高。
hibernate:因为使用了ORM映射,把对对象的操作转换成对数据库的操作,实际上还是转成了调用JDBC来操作数据库,比直接使用JDBC的效率低。再者就是hibernate的特性强大,如果不深入了解hibernate的特性,发挥不出hibernate的强大特性。使用好hibernate的前提是对数据库和sql的高度熟悉,否则也用不好hibernate.
spring:使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计。
3 请登录后投票
   发表时间:2009-12-13  
Angel_Night 写道

面试归来

技术面试官叫我谈谈 ssh优缺点

平时用起来倒是挺顺手..但是从来没有系统的总结过..导致很多点会都没有说出来..

这次我认真总结了一下...


常说的好处 开源
常说的坏处 配置文件过大我就不提了


struts

优点:
          收集,验证表单数据相比传统servlet简单
          优雅的实现可配置的请求转发

缺点:
          属侵入设计(actionform,action都无法复用)
          与serlvetAPI严重耦合..无法摆脱容器
          action与web层耦合.不方便测试
          标准struts的action是非线程安全(很多简历上写着"精通Struts"的高手们都忽视的问题)

不熟悉:
          struts标签库没怎么用过(常用jstl)
          国际化只学过,没用过.停留在demo级别
          validation.xml(配置文件写多了,有时候也想逃避)
          支持表现层技术单一(一直作为struts的缺点来说...但是我也就会jsp而已)


Spring

优点:
          IoC虽然不好形容,但是我从最开始接触spring时就觉得这是个很大的优点
          aop(我自己写过的aop就只有日志...)
          对象容器
                管理对象的生命周期(集成struts摆脱线程问题)
          测试也变得方便
          多数代码没有侵入spring的API
          对于hibernate有很好的支持

          还有很多好处(权限,email支持,调度任务,权限,事务等等),我把我知道的对于ssh的尽量总结出来

缺点:
          缺点我不好提出来..without ejb我没看过..甚至ejb我也不会..
          我也就简单用用...不过我听说过这些缺点(如果有错请及时指正)

          如果开发者设计不出合理的接口.导致一改就改多处.反而造成不便
          不支持分布式部署。
           不是一站式方案(开放的体系和封闭的体系这种话题我从来参与不进去..但是还是常看看的)


hibernate

优点:
          ORM 使数据层更加对象化..摆脱所谓的阻抗不匹配
          sql方言的存在使得开发不用过多考虑数据库的问题
          非侵入式设计

缺点:
          个人感觉熟练使用的话曲线太陡..(尤其对于多表间复杂查询)


不熟悉:
          Transaction(一般都直接交给spring了..接触不错..demo级别)
          缓存机制(Session的缓存和SessionFactory的缓存(内置缓存和外置缓存))

错觉:
          hibernate对于瑕疵的处理不够
           有entity-name的映射 save 就抛错这是我很久以前就发现的问题..难道这不是问题?


可能高手从我总结就可以看出我水平有多菜....

不过还是不要吝惜口水 喷我吧..

在javaeye被喷 只会使我进步  面试时候被喷 少的就是机会了

 


楼主概括的挺全面的

0 请登录后投票
   发表时间:2009-12-13  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

晕~~虽然我们自己用的struts2但是还有很多人在用struts1好不好啊?讨厌踩别个人的人,即使高手又怎么了,总不是从不知道到明白啊~~有什么了不起的……
0 请登录后投票
   发表时间:2009-12-13   最后修改:2009-12-13
haojia0716 写道
一开始全投的是新手贴,为什么现在全变成良好贴?
真他妈垃圾!


投什么贴重要么?

你觉得在javaeye有个良好贴    出门脸上就有金光了
还是你觉得投成新手帖,隐藏贴  出门就没脸了?


我在这发帖是想叫大家看看我总结的 是否全面 是否正确 我好修改 继续完善

如果你觉得我很垃圾 直接站内信骂我好了 不要让大家都看到你的 污言秽语

还有如果你真的想打击我...那挑我文章的毛病(我只在意这个..骂我只能脏了你的嘴)
3 请登录后投票
   发表时间:2009-12-13  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

你用什么好东西,给大家分享一下
0 请登录后投票
   发表时间:2009-12-13  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

你是典型的找抽型的啊  哈哈
0 请登录后投票
   发表时间:2009-12-13  
说下hiberante吧
最大的好处是做产品时,数据库可以是任何一种,因为把SQL都封闭了

不好的地方有:
比如我只取一个表几个字段,为了便于操作大多数情况下取的是一个持久化的对象集合,不要的也一起过来了

知识点太多

不太适合做复杂的select语句查询
0 请登录后投票
   发表时间:2009-12-13  
好久没用这些了,都不敢说话了。
0 请登录后投票
   发表时间:2009-12-14  
大家都说 struts1.x的action和servlet耦合度高? 本人愚昧,这个耦合度在实际项目中,有什么太大的意义么?而紧紧是一个测试使大家认为这个就是action的缺点么?本人觉得在web层测试的意义不大,所以 我觉得这点算不上什么太大的缺点,struts的action只是负责分发,真正的业务逻辑是在你的service,有必要测试么?单元测试也只是针对service的。本人愚昧,请高人点醒!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics