`
Angel_Night
  • 浏览: 19223 次
  • 性别: 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语句查询

 

 

 

 

分享到:
评论
18 楼 aoliwen521 2009-12-12  
rovanz 写道
wangdgsc 写道

spring,暂时没有发现很郁闷的问题,

spring这小子什么都搞,在Java Mail上封装了一层,在JMS封装了一层,quartz上封装了一层....丫的没有他不封装的,我承认封装了之后好用了一点,丫的学习成本在那呢,我就讨厌他这点,我真想和他说一下:不要什么都搞好伐
另外一点是可读性,一个项目一旦分成五六个工程,每个工程又分几个配置文件,最倒霉的是这个项目开始的时候你没有参与而且整个开发团队有没有很好的规范、又良好的文档,哦,那噩梦开始了,你就准备好按一下午的Ctrl+H吧,大把大把的时间就这么过去了,这或许不能完全怪它,我想说的是有没有更好的方式来做spring现在做的事呢?要是即使没有文档我也能很清楚的知道这个属性被注入的是什么,那些advisor会拦截到当前方法,那世界该多美啊


spring封装了一大堆。想做任何java项目的中间粘合剂。
其他的我没用过,但感觉在封装hibernate的时候,把传统的hibernate的session功能有所变化。
底层实现不一样。很多代码还是无法很好的移植。
17 楼 rovanz 2009-12-12  
wangdgsc 写道

spring,暂时没有发现很郁闷的问题,

spring这小子什么都搞,在Java Mail上封装了一层,在JMS封装了一层,quartz上封装了一层....丫的没有他不封装的,我承认封装了之后好用了一点,丫的学习成本在那呢,我就讨厌他这点,我真想和他说一下:不要什么都搞好伐
另外一点是可读性,一个项目一旦分成五六个工程,每个工程又分几个配置文件,最倒霉的是这个项目开始的时候你没有参与而且整个开发团队有没有很好的规范、又良好的文档,哦,那噩梦开始了,你就准备好按一下午的Ctrl+H吧,大把大把的时间就这么过去了,这或许不能完全怪它,我想说的是有没有更好的方式来做spring现在做的事呢?要是即使没有文档我也能很清楚的知道这个属性被注入的是什么,那些advisor会拦截到当前方法,那世界该多美啊
16 楼 withoutme_hw 2009-12-12  
Hibernate还有一个缺点,面试官提示我说Hibernate有没有什么不能做到,而JDBC可以做到的?
Hibernate不能再运行时动态创建表,JDBC是可以做到的
15 楼 horseroad 2009-12-12  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

你属于典型的没事找抽型,呵呵
14 楼 rovanz 2009-12-12  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

大哥您别装好伐
13 楼 zhengyutong 2009-12-12  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

真的没有人使用Struts1了吗?低调一点好,别人会围观你的。
12 楼 zdmcjm 2009-12-12  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

楼主不菜,SSH能够用起来就行,能完成项目就行,没必要深入研究.struts1我真想不到为什么现在会没有人在用?
11 楼 illu 2009-12-12  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用

确实 虽然struts2 很多方面要强于struts1.x 但是很多系统还在用啊 不可能出个struts2 以前用struts项目全翻新吧  还有很多维护工作要做 你这句有点极端了
10 楼 wangdgsc 2009-12-12  
struts最大的缺点我觉得就是写单元测试的,太麻烦了,
hibernate,个人觉得还好,没有太大的缺点,毕竟,能用hql也能用sql,缓存那一块,
我很少用,很难控制,学起来是比较的麻烦,
spring,暂时没有发现很郁闷的问题,
现在的注解在一定的程度上缓解了配置文件过于庞大的问题,
9 楼 erikchang 2009-12-11  
感觉不能武断说优缺点,你认为的缺点可能对某些人来说是优点!
8 楼 Angel_Night 2009-12-11  
wj539h 写道
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用


是的,我确实很菜...接触web开发时间很短 属于应届毕业生吧...

和那些简历上写着精通ssh的毕业生不同 我只能简单用用



不过后半句是不是有些夸张了...

08年Indeed全球Java职位需求技能统计

mvc框架百分比 struts2不过才0.2% struts1有80%

虽然数据比较久了(我没找到新的 也不会统计...)

但是也不会迅速消亡到"居然还有人在用这种地步吧"?

毕竟struts1比较老了..每个公司都有相应的再封装...


可能是文科的吧 用了夸张的修饰我这种不会写作文的家伙还给认真了





7 楼 wj539h 2009-12-11  
你确实很菜,你对SSH还不是很熟,而且struts1我真想不到现在居然还有人在用
6 楼 patrickyao1988 2009-12-11  
我觉得楼主总结的比我清楚。。。。
5 楼 zozoh 2009-12-11  
我认为这篇文章很有价值,楼主是典型的 Java Web 程序员。
4 楼 夜之son 2009-12-11  
我们都希望自己很强,可是技术就像是风,毫无方向啊。I am a bit green.
3 楼 Angel_Night 2009-12-11  
xiaoyuqi00 写道
hibernate优点:非侵入式设计

这点我不怎么认同,如果你用hql的话很数据层就很麻烦了,虽然hibernate支持sql但是既然用hibernate,那首选肯定是hql或者criteria



使用hibernate编写业务逻辑,持久类 没有必须要遵守hibernate专有的规则和设计模式

反观struts虽然有一个很像持久类的actionform...但是我们从来都是直接把数据转到另外一个pojo中...

语言表达不够好...用了"非侵入式设计"


我作为一个新手就谈侵入性实在是太扯了...(注意以前老师比较爱谈这些..)

我连hibernate都不敢说熟悉...只敢说能够用起来

一会修改一下 把这点修改掉
2 楼 xiaoyuqi00 2009-12-11  
hibernate优点:非侵入式设计

这点我不怎么认同,如果你用hql的话很数据层就很麻烦了,虽然hibernate支持sql但是既然用hibernate,那首选肯定是hql或者criteria
1 楼 xxxzzznnn 2009-12-11  
楼主和我情况差不多

相关推荐

    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架构优缺点分析

    SSH架构,全称为Struts+Spring+Hibernate,是Java Web开发中常见的三大框架的组合。这个架构在过去的许多项目中被广泛应用,...然而,理解SSH架构的优缺点对于理解现代Java Web开发的演进历程仍然具有重要的参考价值。

    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