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

ssh优缺点

阅读更多

面试归来

技术面试官叫我谈谈 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我也不会..
          我也就简单用用...不过我听说过这些缺点(如果有错请及时指正)

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

 

          使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计。


hibernate

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

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

          不太适合做复杂的select语句查询

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

 

          聚集性操作数据(这种时候jdbc也白费吧...还是存储过程)

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


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

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

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

 

 

 

内容更改记录:

 

javaeye_id 修改原因(也就是回复部分内容)
xiaoyuqi00 hibernate优点:非侵入式设计
这点我不怎么认同,如果你用hql的话很数据层就很麻烦了,虽然hibernate支持sql但是既然用hibernate,那首选肯定是hql或者criteria
geeksun

使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计

blackstreet 不太适合做复杂的select语句查询

 

 

 

 

分享到:
评论
58 楼 archerfrank 2009-12-15  
archerfrank 写道
action线程不安全也算是缺点么。。。
如果action是singleton并且定义了可变的实例变量(如某个状态标识),则线程不安全;
这不影响你用spring ioc,因为注入的东西往往也都是datasource、service、dao等,它们都是初始化以后就不会再被改变了,并且它们本身也是可以做到线程安全的。
至于它们如何保证线程安全,道理同上。

所以我觉得这个不能算是缺点,只不过是从serlet过来的特性吧。
57 楼 daquan198163 2009-12-15  
Angel_Night 写道
archerfrank 写道
action线程不安全也算是缺点么。。。


线程这个地方的确我不是很熟悉

根据我浅薄的线程知识 不要在action中直接定义实例变量 问题就不会很大(不肯定啊)

但是不在action中定义对spring ioc有些不方便...

不知道能否给解释一下 我的线程的确连入门都不好说

如果action是singleton并且定义了可变的实例变量(如某个状态标识),则线程不安全;
这不影响你用spring ioc,因为注入的东西往往也都是datasource、service、dao等,它们都是初始化以后就不会再被改变了,并且它们本身也是可以做到线程安全的。
至于它们如何保证线程安全,道理同上。
56 楼 Angel_Night 2009-12-15  
archerfrank 写道
action线程不安全也算是缺点么。。。


线程这个地方的确我不是很熟悉

根据我浅薄的线程知识 不要在action中直接定义实例变量 问题就不会很大(不肯定啊)

但是不在action中定义对spring ioc有些不方便...

不知道能否给解释一下 我的线程的确连入门都不好说
55 楼 Angel_Night 2009-12-15  
wj539h 写道
居然有那么多人想抽我,操!牛逼,你们丫真是他妈闲得难受了
我觉得既然struts2出来了就证明2肯定是比1要强很多,否则人家没事儿出什么2啊,直接用pojo代替formbean你们觉得不好吗?
随便你们爱用什么就他妈用什么,我虽然现在已经不怎么写代码了,但是我还是对技术比较热衷,我只是觉得struts2的确比struts1强很多,你们他妈随便,一群傻逼



心态放平 好东西大家都喜欢

而且这种希望好东西流行的心态我也是有的

我接触过一点linux,我感觉比window好很多啊...但是事实无法改变 window还是处在霸主的地位

可能操作系统有点大(而且我接触的也不多,不好评论)...

那么我已经不用ie很多年了...ie也一样还是很多人用..这是事实
54 楼 mfserliang 2009-12-15  
wj539h 写道
居然有那么多人想抽我,操!牛逼,你们丫真是他妈闲得难受了
我觉得既然struts2出来了就证明2肯定是比1要强很多,否则人家没事儿出什么2啊,直接用pojo代替formbean你们觉得不好吗?
随便你们爱用什么就他妈用什么,我虽然现在已经不怎么写代码了,但是我还是对技术比较热衷,我只是觉得struts2的确比struts1强很多,你们他妈随便,一群傻逼



ruby on rails不好吗

现在出的play framework不好么?

随便你爱用什么就他妈用什么,我虽然现在已经不怎么写代码了,但是我还是对技术比较热衷

我只是觉得ruby 还有 play的确比struts2强很多,你他妈随便,你这个S13

你以为你的struts2无敌了?

53 楼 archerfrank 2009-12-15  
action线程不安全也算是缺点么。。。
52 楼 wj539h 2009-12-15  
居然有那么多人想抽我,操!牛逼,你们丫真是他妈闲得难受了
我觉得既然struts2出来了就证明2肯定是比1要强很多,否则人家没事儿出什么2啊,直接用pojo代替formbean你们觉得不好吗?
随便你们爱用什么就他妈用什么,我虽然现在已经不怎么写代码了,但是我还是对技术比较热衷,我只是觉得struts2的确比struts1强很多,你们他妈随便,一群傻逼
51 楼 zdmcjm 2009-12-15  
如果要论讨什么框架的组合,不如来一个实际的场景或者需求,再让大家来讨论,用什么架构是最合适的。
比如简单点的:
CMS系统需求:
1。跨数据库
2。模板引擎
3。页面静态化
4。插件机制
6。统一站点管理(二级站点等等)
。。。。

可选架构:
ssh  s2sh  jsf2.0+ejb3 grails rails play! jboss-seam 。。。。 以及php的一些解决方案。
 
50 楼 tangbo530 2009-12-15  
哈哈 好激烈的讨论,,我暂时围观
49 楼 Teok 2009-12-15  
对ssh一直持谨慎态度,虽然公司的项目都是基于它开发的,我每次总是能躲就躲得。这次看了LZ的介绍,还是见识很多,因为我每次碰到这些问题,都得去问人,被人的人虽说是在研究ssh,结果证明也是个二把刀选手。这个体系,知识点还是很多的。

另外,看过很多人关于新手、老手的争论,我想说的是:苛刻的人还是歇歇吧,你们像楼主如此年轻的时候,未必有如此的见识。
48 楼 sogo1986 2009-12-15  
struts1.x最大的问题是难于测试,以及和spring的集成方式,他自带的那些个插件机制是出了名的BUG多,而且一定要继承他的Action,formbean也要继承...侵入非常严重,action亦不是线程安全,使用ajax不太方便,视图本身只支持JSP,通过plugin机制扩展...很不爽
Hibernate 有点是ORM,面向对象方式开放数据库,有OO的思想即可各种操作,避免了各种开放效率高之后通过注解,多种底层事务管理机制以及一些代码生成工具,同时也兼容了JDBC,基本上JDBC可以做,Hibernate就可以做,而且方便的提供了缓存管理机制,最方便的还是通过结合Spring进行声明式的事务管理了。缺点可能是设计太过于复杂,学习曲线比较堵,对于过于复杂的SQL显得力不从心
Spring 的IOC容器是一大亮点,可以通过一个或者多个配置文件方便管理bean的生命周期,通过DI在应用程序上下文启动时注入依赖关系 低侵入的设计,AOP则主要用来事务管理和日志,提供了一个设计良好的MVC框架与自身集成非常良好,另外还有测试 webflow等等等等 。总之Spring海纳百川,从持久层到表现层甚至webservice标准提供了支持和对多种框架的封装,使得API更加统一和易用,缺点还是JAVA框架的通病----大项目时,即使拆分处理,配置文件仍然过于庞大不易于管理
47 楼 Angel_Night 2009-12-14  
longtinghappy 写道
SSH所谓的缺点,只不过都是理论上的东西,实际上用起来,绝对的经典!
一个公司,自始至终的用SSH,不存在维护困难,也就不存在侵入性,哪个SB用了一个框架,开发了几个月还去换别的框架
那些说SSH框架有有缺点的,你要是真的精通了,我说你也不会这么认为
就中国现在的那些系统,用SSH算是奢侈了




的确ssh用起来挺顺手的
至于为什么总结
也是面试被问到,个人感觉回答的不够好...所以回来亡羊补牢...
至于为什么发帖
也是认为一个人不能想到方方面面...


很多人谈侵入性更多的是考虑能不能方便优雅的进行单元测试
毕竟struts1和Webwork还是很鲜明的......

至于开发几个月换别的框架确实比较扯....
46 楼 Angel_Night 2009-12-14  
andyu2008 写道

我猜面试官肯定是想说,Hibernate不支持存储过程,而JDBC可以



如果我没记错的话 2.x的确是不支持 3.x可以了;

不直接支持,可以通过自己写ClassPersister来实现,理论上说没有直接用JDBC方便;
45 楼 longtinghappy 2009-12-14  
SSH所谓的缺点,只不过都是理论上的东西,实际上用起来,绝对的经典!
一个公司,自始至终的用SSH,不存在维护困难,也就不存在侵入性,哪个SB用了一个框架,开发了几个月还去换别的框架
那些说SSH框架有有缺点的,你要是真的精通了,我说你也不会这么认为
就中国现在的那些系统,用SSH算是奢侈了


44 楼 kekeemx 2009-12-14  
前段时间无聊, 有个超级小的项目后台狠狠心,重新收拾了一下hibernate,
用hibernate来做底层的DAO层.没有深入去研究,感觉是好不习惯..底层全部给我封装了.现在又丢掉了..还是直接jdbc来的快.以后优化也方便..

PS:个人感觉啊,象企业应用级之类的,这种业务非常多的情况,采用框架(无论是开源还是自作的)
可以很好的统一大规模人员的代码水平和风格.同时可以更方便让高层架构师来掌控全局体系.这是一个最大的有点.从管理上来讲的话.
如果是互联网应用之类的,一般来讲的话,其业务逻辑都不会非常庞大,这种毕竟注重性能极限的情况下,我觉得用不用框架都无所谓了.个人还比较倾向于不用,而从整体和细节上进行性能优化.
43 楼 andyu2008 2009-12-14  
withoutme_hw 写道
Hibernate还有一个缺点,面试官提示我说Hibernate有没有什么不能做到,而JDBC可以做到的?
Hibernate不能再运行时动态创建表,JDBC是可以做到的


我猜面试官肯定是想说,Hibernate不支持存储过程,而JDBC可以
42 楼 geeksun 2009-12-14  
peak 写道
hibernate的hsql写出来的语句绝对比复杂的sql看上去简单,速度不敢说,但是在开发的时候确实方便。
为什么不提提spring的mvc,这个一点不比struts差的web框架


spring的mvc,使用起来学习曲线比较高,使用成本也高,struts的一个优点是稳定性好,经过这么多人的使用,经住了环境的考验。
41 楼 lizhuang 2009-12-14  
Struts1优点:严格的采用MVC方式进行开发,便于分工。V层其实是吹牛,至今就没看到美工会写JSTL标签。
Hibernate缺点:主要是大规模写入数据的时候会超慢。

这篇贴应该归位新手帖。
40 楼 peak 2009-12-14  
hibernate的hsql写出来的语句绝对比复杂的sql看上去简单,速度不敢说,但是在开发的时候确实方便。
为什么不提提spring的mvc,这个一点不比struts差的web框架
39 楼 Angel_Night 2009-12-14  
haojia0716 写道
虽然老子随便说脏话,但是老子腰板站得直.

像这种随便修改群众投票的行为,就算你嘴巴再怎么干净,都是伪君子一个.



修改投票?能么 不要那么幼稚吧

就算能从javaeye数据库改.....我的贴有好到修改群众投票的价值?



如果你觉得javaeye不好就不用来了...废话不觉得多吗?

站的直?你在站岗么?

相关推荐

    ssh框架优缺点

    ### SSH框架优缺点详解 SSH框架,即Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级架构模式。本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### ...

    综合论述SSH的优缺点

    标题“综合论述SSH的优缺点”指的是对Secure Shell(SSH)协议的全面分析,包括它的优点和不足。SSH是一种网络协议,用于安全地远程登录到服务器,执行命令,传输数据,以及在不安全的网络环境中提供加密通信。SSH...

    SSH框架的优缺点

    下面我们将深入探讨SSH框架的优缺点。 **一、Struts2** Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点并解决了其不足。其主要优点包括: 1. **灵活的拦截器机制**:Struts2使用拦截器来处理请求,...

    SSH架构优缺点分析.rar

    本资料详细介绍了SSH架构的优缺点,可作为面试资料备用! 常说的好处 开源 常说的坏处 配置文件过大我就不提了 struts 优点: 收集,验证表单数据相比传统servlet简单 优雅的实现可配置的请求转发 ...

    ssh框架的介绍以及优缺点

    ### SSH框架介绍及其优缺点 #### 一、SSH框架概述 SSH框架是Java Web开发领域中非常流行的一个组合,它由三个独立但又相互协作的部分组成:Struts、Spring 和 Hibernate。这三个技术分别解决了Web应用开发中的不同...

    ssh框架优缺点 struts hibernate spring

    ### SSH框架:Struts、Hibernate、Spring 的优缺点分析 #### Struts **优点:** 1. **MVC模式的支持**:Struts框架遵循MVC(Model-View-Controller)设计模式,它将应用程序分为模型层、视图层和控制器层,这样的...

    ssh架构优缺点(转)

    NULL 博文链接:https://guona329.iteye.com/blog/1597773

    SSH(Spring Struts Hibernate)的优缺点

    让我们详细分析一下SSH的优缺点。 **Struts** Struts作为一个MVC框架,具有以下优点: 1. **MVC架构**:Struts通过分离业务逻辑、视图和控制逻辑,使应用结构清晰,易于维护和扩展。 2. **Taglib库**:Struts提供...

    整理的各种框架的优缺点

    整理的各种框架的优缺点总结哦 希望能帮助到有需要的 童鞋

    Struts,Spring,Hibernate优缺点

    Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...

    三大框架优缺点

    改文档是一个非常实用的 三大框架解说文档 通过该文档 初学者能更深一步对SSH框架的了解

    FTP服务器优缺点分析.docx

    3. 可通过SSL、SSH2等协议进行加密,增强数据安全性。 4. 使用TCP/IP协议,确保数据准确传输。 5. 对于大文件,FTP传输速度通常比HTTP更快。 FTP服务器种类多样,如Windows系统自带的IIS FTP,功能强大的Serv-U,...

    J2EE三大框架面试的常见问题

    SSH优缺点 1.struts struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。 优点: Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者...

    框架的优缺点

    本篇文档主要探讨了三大主流框架——Struts1、Struts2和Spring的优缺点,尤其是对SSH(Struts、Spring、Hibernate)框架的理解。 首先,我们来看看Struts2的工作原理。Struts2的核心是FilterDispatcher,它通过一...

    SSH.rar_SSH框架简介_ssh

    下面我们将深入探讨SSH框架的各个方面,包括其优缺点。 **Struts2** 是一个基于MVC设计模式的Web应用框架,它通过简化MVC的实现来帮助开发者创建更结构化的应用程序。Struts2提供了丰富的拦截器和插件机制,使得...

    SSH框架详解

    个人中的SSH详细介绍,包括struts1的工作原理、Struts1优缺点(为什么要用strust1)、struts1的工作原理及基本配置详解、struts2工作原理、struts2运行机制、Struts2的工作流程、Struts2工作原理、Struts1与Struts2...

    SSH2文件上传

    这些协议各有优缺点,选择哪种取决于应用场景的安全性需求、速度和复杂性。 综上所述,SSH2文件上传是通过SSH2协议实现的远程文件传输,涉及连接建立、身份验证、SFTP会话开启、文件传输和验证等多个环节。在实际...

    ssh 框架整合总结

    包括assigned(外部生成)、hilo、seqhilo、increment、identity、sequence、native、uuid.hex、uuid.string和foreign等多种方式,每种都有其适用场景和优缺点。 在处理一对多或多对多关联时,Hibernate可能会出现N...

    strut spring hibernate 优缺点

    ### Struts, Spring, Hibernate 三大框架的优缺点分析 #### Struts框架 **优点:** 1. **组件模块化与灵活性:** Struts框架强调组件的模块化设计,这使得开发者可以根据项目的不同需求灵活地选择和组合这些组件。...

Global site tag (gtag.js) - Google Analytics